线程如何调用带返回参数的方法,并返回值
private void btnCheeck_Click(object sender, System.EventArgs e)
{
test thr1 = new test();
test thr2 = new test();
Thread tid1 = new Thread(new ThreadStart(thr1.CheeckNetWorke2) );
Thread tid2 = new Thread(new ThreadStart(thr1.CheeckNetWorke) );
tid1.Start();
tid2.Start();
}
}
public class test
{
public void CheeckNetWorke2()
{
string IP = "172.22.146.57 ";
string state;
state =RunCmd( "ping " + IP).IndexOf( "TTL ") > 0 ? "Open ": "Close ";
MessageBox.Show( IP + " Vpn状态为: " + state + "\r\n ");
}
public string CheeckNetWorke()
{
string Message;
string IP = "172.22.146.62 ";
string state;
state =RunCmd( "ping " + IP).IndexOf( "TTL ") > 0 ? "Open ": "Close ";
Message = IP + " Vpn状态为: " + state + "\r\n ";
return Message;
}
private string RunCmd(string Cmd)
{
return p.StandardOutput.ReadToEnd(); //從輸出流取得命令執行結果
}
}
---------------------
以上方法在执行报错误:C:\Documents and Settings\Administrator\桌面\Factory\NetWorkListen\MainFrom.cs(170): 方法“NetWorkListen.test.CheeckNetWorke()”与委托“void System.Threading.ThreadStart()”不匹配
情高手出来解答下 ,或发相关资料给我~在线等
E-MAIL:ye123s@163.com
------解决方案--------------------kissknife(侧身向南边) 你那个上面是不 是 2.0里面才有的啊
我用的是 2003啊 ~
=================
你要的其实是返回字符串,看上面给出的网址中的第2点..不是第1点..
------解决方案--------------------封装一下,弄成类吧
------解决方案--------------------没看见返回值,一般情况下,线程是不允许有返回值的,你可以用全局变量来做
------解决方案--------------------把线程所执行的方法放到一个类里,然后给类添加属性以使用在方法里能够获取或设置。
然后用线程来执行类的实例的这个方法。
------解决方案--------------------mark
------解决方案--------------------用全局变量啊