2011-01-06 8 views
2

Ich verwende WorkflowFoundation 4.0 in WinForms-Anwendung. Wenn der Benutzer das Formular schließt, wird das Programm nicht beendet, da der Workflow im Hintergrund ausgeführt wird.Workflow Foundation - Beenden vs Abbrechen

wird der Workflow wie folgt erstellt:

WorkflowApplication workflow = new WorkflowApplication(new myActivity()); 
workflow.Run(); 

Ich mag würde zu 'schließen' es in meinem Fall Formclosing. Welche Methode sollte ich verwenden? Terminate, Abort oder Cancel?

+0

Was meinst du mit 'Schließen' es. Was genau willst du mit dem Workflow machen? –

+0

Ich möchte es Thread abbrechen, so dass das Formular vollständig entsorgt wird, und keine Thread-Rests ausgeführt werden ... – veljkoz

+0

was ich verstehe, ist, dass wenn Sie das Formular schließen Sie den Workflow abbrechen und es nicht noch einmal fortsetzen möchten mehr, habe ich recht? –

Antwort

6

Abhängig von Ihren Anforderungen/Workflow entweder Beenden oder Abbrechen. Abort ist so konzipiert, dass der permanente Status beibehalten wird, wenn Sie den Instanzspeicher verwenden, und den Workflow vom letzten gespeicherten Status aus neu starten.

Verwenden Sie beenden, wenn Sie keine weiteren Aktivitäten, einschließlich Cleanup wie Final-Blöcke, ausführen möchten. Verwenden Sie Abbrechen, wenn Sie die Bereinigung des Arbeitsablaufs nach sich selbst durchführen möchten. Ich würde in den meisten Fällen Abbrechen vorschlagen.

+0

Ist das irgendwo dokumentiert? –