死んだピアをチェックするタイムコードがあります。私はそれを行うSystem.Threading.Timerを使用します。検出コードの作品と私はこのようにそれを呼び出す:状態はメソッド自体C#threadingタイマーは、非同期ソケットコードを停止する必要があります
Socket handler = state.workSocket;
以降...
handler.Shutdown(SocketShutdown.Both);
//I need to stop the Timer here
に使われているStateObjectですが定義されている
Timer SocketKPATimer = new Timer(delegate { timedcode(state); }, null, 5000, 5000);
as static void timedcode(StateObject state) {...}
ここで問題は私は何かが間違っていることを検出します。私はSocketKPATimerを停止する必要があります。私はできません。 タイムコードを変更する必要がありますので、タイマーを止めることができますか?
はい、私のtestcodeでそれをしないこと。私は 'state.TimerThingy = SocketKPATimer;'をSocketKPATimerの作成後に移動しなければならなかった。さもなければ、コードはTimerの廃棄時にnull参照例外をスローする。どうもありがとうございました。 – ZoOl007