ただ1秒の遅延の後にメソッドを実行しようとしています。
このメソッドは一度しか呼び出されません。TimerCallbackが1秒の遅延で呼び出されないC#
私の現在のコード:
private void NetworkIsActive() {
// delay to allow the network to properly set firs
AutoResetEvent autoEvent = new AutoResetEvent(false);
TimerCallback timerDelegate = new TimerCallback(this.CheckInternetConnection);
TimeSpan delayTime = new TimeSpan(0, 0, 1);
try {
Timer updateTimer = new Timer(timerDelegate, autoEvent, delayTime, TimeSpan.FromMilliseconds(-1));
} catch (ArgumentOutOfRangeException Ex) {
throw Ex;
} catch (ArgumentNullException NEx) {
throw NEx;
} catch (Exception x) {
throw x;
}
}
を、私は私が欲しいものを達成しようとするこれらの例に従っても無駄にしている
CheckInternetConnection ()
private void CheckInternetConnection(object state) {
switch (NetworkActivities.IsInternetAvailable()) {
case TRUE:
this.ExternalIP = NetworkActivities.getExternalIP();
this.InternetConnection = ACTIVE;
break;
case FALSE:
this.ExternalIP = EMPTY;
this.InternetConnection = INACTIVE;
break;
}
}
私もnull
に状態引数を設定しようとしたが、違いはありませんしています。
CheckInternetConnection
が呼び出されることはありませんし、例外がtry...catch
にスローされません私はむしろ、この方法は作業になるだろう、私はThread.Sleep
参考にするのに最適なペースはどこですか?コンストラクタ? – wmash
@wmashコンストラクタは '一時的にアクティブ'なので、コンストラクタは参照を保持できません。 – Maarten
@Luaanクラスとタイマーがコールバックデリゲートを介して接続されているため、タイマーはコレクションに適格ではありません。 – Maarten