2012-04-05 6 views
0

In meiner Anwendung starte ich einen Arbeitsthread von einem benutzerdefinierten Benutzersteuerelement. Wenn die Steuerung entsorgt wird, wird der Thread abgebrochen. Das Problem ist, dass wenn der Computer in den Ruhezustand geht und der Benutzer die Anwendung schließt, meine Kontrolle nicht mehr entsorgt wird..net Computer schlafen und Disposed heißt nicht

Wenn ich einen Thread in meiner Anwendung starte, wie kann ich erzwingen, dass er gestoppt wird, wenn die Anwendung geschlossen wird?

+0

Haben Sie immer noch einen Hinweis auf den Thread, wenn der Computer aufwacht? Auch - was meinst du, die Kontrolle ist nicht mehr entsorgt? Erhalten Sie eine Ausnahme, wenn Sie versuchen, Dispose anzurufen? – RQDQ

+0

Ist der Thread ein Hintergrund-Thread? – phoog

+1

Wird die App wieder aktiviert oder im Schlaf getötet? –

Antwort

3

Wenn die Steuerung entsorgt wird, wird der Thread abgebrochen.

Schlechte Idee. Das Abbrechen von Threads kann Speicher wie Datenstrukturen und dergleichen beschädigen (und tut dies oft auch).

Wenn ich einen Thread in meiner Anwendung starte, wie kann ich erzwingen, dass er gestoppt wird wenn Anwendung geschlossen ist?

Sie müssen Thread.IsBackground = true einstellen.