Ich habe eine App, die einen Remote-Server eines Drittanbieters aufruft. Ich verwende einen BackgroundWorker, um Async auszuführen.C# BackgroundWorker - Wie kann man den Status von worker.CancellationPending abbrechen?
Wenn ich CancelAsync() abrufe, um den Remote-Prozess abzubrechen, und dann den Status workers.CancellationPending verwendet, um einen Aufruf der Close() -Methode auf diesem Remote-Server auszulösen, wird auf dem Remote-Server die Meldung "Sie versuchen um diesen Prozess zu beenden, ist das was du willst? " und Ja/Nein-Tasten.
Wenn der Benutzer Ja drückt, dann kein Problem, Remote-Server wird heruntergefahren. Aber wenn der Benutzer Nein drückt, wie storniere ich dann den CancellationPending-Status, so dass mein Prozess fortgesetzt werden kann, bis der Benutzer CancelAsynch() erneut aufruft?
Bearbeiten: Nach der ersten Antwort unten: Wie gehe ich damit um, dass ein Benutzer den Remote-Server nicht schließen kann und ihn laufen lässt, während sich meine App in einem Status befindet, der nicht geändert werden kann?
Edit: Bevor Sie Tastatur Krieger dies als Duplikat markieren, lesen Sie die verdammte Frage.
Werfen Sie einen Blick hier: http://stackoverflow.com/q/4732737/3956100 – Niklas
_ "wie gehe ich mit der Tatsache, dass ein Benutzer wählen kann, den Remote-Server nicht zu schließen "_ - Sie müssen diese Interaktion zurück in den Code drücken, um auftreten _before_ Sie CancelAsync()' aufrufen. Auf diese Weise beenden Sie nicht einen Prozess, der nicht abgebrochen werden sollte. Beachten Sie, dass dadurch auch die Verarbeitung fortgesetzt wird, während der Benutzer darüber nachdenkt, ob er abbrechen möchte oder nicht, was in den meisten Fällen eine gute Sache sein sollte. –
@ Niklas Dieser Link ist nicht das gleiche Problem. –