Sagen wir, ich habe diesen CodeStoppen eines System.Timers.Timer
public static Timer timer;
static void Main()
{
timer = new Timer (60 * 1000); // It ticks every minute
timer.Elpased += One;
timer.Elapsed += Two;
}
private static void One (sender o, EventArgs e)
{
timer.Stop();
}
private static void Two (sender o, EventArgs e)
{
DoSomething();
}
Da ich, dass ‚One‘ gehe davon aus und ‚Two‘ wird ausgeführt, um abonnieren, in ‚One‘ die Timer gestoppt wird verhindern, dass "Zwei" passiert?
Wenn nicht, wie kann ich es tun?
Überprüfen Sie den Timer-Status in Two –
Wenn Sie 'timer.Elapsed - = One 'aufrufen, wird' Two' noch ausgeführt, da der Delegat von 'One' entfernt wird, der Code jedoch nicht ausgeführt wird. – Edgar
@ EdgarsŠturms Yeah, aber timer.Elapsed - = Two on One wird nicht stoppen Zwei von der Ausführung – marsh