2017-11-02 3 views
-3

Gibt es in C# Funktionen, sodass ein bereits ausgeführter Prozess in der Benutzeroberfläche nach Ausführung der aktuellen Schleifenausführung angehalten werden muss, wenn eine Schaltfläche gedrückt wird.C# bricht die vollständige Ausführung ab, aber nach Abschluss einer Threadausführung

Zum Beispiel:

while (something) 
{ 
    // do something 
} 

while (something) 
{ 
    // do something 
} 

Wenn erster while-Schleife unter Ausführung ist und von der UI „stop Ausführung“ gesendet wird, dann sollte es vollenden, während der Ausführung der Schleife und dann die gesamte Ausführung stoppen sollte.

+0

Nun, sicher. Wenn Sie kein CancellationToken verwenden, tun Sie es wahrscheinlich falsch. –

Antwort

1

Sie meinen so?

private volatile bool _stop = false; 

void OnCancelClick() 
{ 
    _stop = true; 
} 

void WorkerProcess() //In separate thread 
{ 
    while (!_stop) 
    { 
     // do something 
    } 
} 

Es gibt eine Million Möglichkeiten, es zu tun. Dies ist wahrscheinlich am einfachsten zu verstehen.

+0

Funktioniert das, wenn ich meinen C# -Code bereits im Hintergrund abspiele und wenn eine Abbrechen-Schaltfläche gedrückt wird, sollte die Ausführung gestoppt werden? –

+1

Warum nicht versuchen und sehen? –

Verwandte Themen