Ich habe Zeitcode, der auf tote Peers überprüft. Ich benutze System.Threading.Timer, um das zu tun. Der Erkennungscode funktioniert und ich nenne es wie folgt aus:C# threading Timer muss sich selbst stoppen Async-Socket-Code
Timer SocketKPATimer = new Timer(delegate { timedcode(state); }, null, 5000, 5000);
wo Staat ist, die stateobject und später
Socket handler = state.workSocket;
verwendet wird ...
handler.Shutdown(SocketShutdown.Both);
//I need to stop the Timer here
Das Verfahren selbst ist definiert als static void timedcode(StateObject state) {...}
jetzt ist das Problem, dass nach Ich erkenne, dass etwas mit dem Peer schief gelaufen ist Ich brauche den SocketKPATimer um zu stoppen und ich kann nicht. Wie muss ich Timedcode ändern, damit ich den Timer bitte anhalten kann?
ja, das es in meinem Testcode tut. Ich musste 'state.TimerThingy = SocketKPATimer;' nach der Erstellung des SocketKPATimers verschieben, sonst löst der Code beim Verteilen des Timers eine Nullreferenz-Ausnahme aus. Vielen Dank. – ZoOl007