C# 多线程,ThreadStart()里面的方法带了参数就提示错误?
private void btnPing_Click(object sender, EventArgs e){
........省略定义
pingTh = new Thread(new ThreadStart(pingMethod(string pingIP, int myTimeOut, byte[] mySendData));
} //这里提示错误,无效的表达式string .
我有个感觉,void空类型的方法就能定义线程,但带参数就是不行。
下面是我定义 的一个方法threadStart
//ping的方法,输出未超时和超时时的打印日志。
public void pingMethod(string pingIP, int myTimeOut, byte[] mySendData)
{
Ping ping = new Ping(); //建立ping对象
PingOptions options = new PingOptions(64, true);
txtRecord.AppendText("开始进行ping包测试,如果中途按停止健则统计开始到上一个包的数据\r\n");
try
{
for (int i = 1; i <= pingNum; i++)
{
PingReply reply = ping.Send(pingIP, timeOut, mySendData, options);
.......//后面的省略,方法而已
}}
2回答
-
哆啦的时光机
你可以这样处理啊,在ThreadStart()里写一个不带参数的方法,再由该方法调用另一个带参数的方法。亲测可行