如何从ShowStatus过去的事件中返回一个值?这是我的代码。我想将结果返回为YES或NO。
谢谢..
Timer1 = new System.Timers.Timer();
Timer1.Elapsed += new ElapsedEventHandler(ShowStatus);
Timer1.Interval = 30000;
Timer1.Enabled = true;
public void ShowStatus(object source, ElapsedEventArgs evt)
{
try
{
Timer1.Enabled = false;
string result;
IPAddress ip = "127.0.0.1";
result = FindStatus(ip.ToString()) ? YES: NO;
}
Timer1.Enabled = true;
}
public bool FindStatus(string ip)
{
Ping p = new Ping();
ingOptions opts = new PingOptions();
opts.DontFragment = true;
PingReply rc = p.Send(ip, 120, buff, opts);
if (rc.Status.Equals(IPStatus.Success)) return true;
return false;
}
答案 0 :(得分:0)
不可能改变ShowStatus的签名,因为它必须匹配ElapsedEventHandler
委托。
您必须使用成员变量将当前状态传达给其他方法:
private bool statusFound;
protected void ShowStatus(object source, ElapsedEventArgs evt)
{
// ...
statusFound = FindStatus(ip.ToString());
// ...
}