2009-09-01 11 views
0

ShowStatus経過イベントから値を返すにはどうすればよいですか?ここに私のコードです。結果をYESまたはNOとして返信したいと思います。ElapsedEventHandlerから値を返します

おかげ..

 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; 
    } 
+2

**に**? UIエレメントを "YES/NO"で更新しますか? –

+0

はい。私はUI要素を更新したいと思います。 –

答えて

0

それはそれはElapsedEventHandlerデリゲートを一致させる必要があるためのshowStatus'署名を変更することはできません。

あなたは他の方法に現在の状態を伝えるためにメンバ変数を使用する必要があります:あなたはそれを返すようにしたいん

private bool statusFound; 

protected void ShowStatus(object source, ElapsedEventArgs evt) 
{ 
    // ... 
    statusFound = FindStatus(ip.ToString()); 
    // ... 
} 
+0

Ok.私はメンバー変数を使用します。 –

関連する問題