2 Stimmen

Erlauben Sie einem Worker-Thread zu arbeiten, während der Hauptthread einen Dialog anzeigt

Ich möchte ein Formular als Dialog anzeigen, aber das Problem ist, dass der Worker-Thread aufgehört hat zu arbeiten und jetzt auf den Hauptthread wartet, der den Dialog anzeigt.

Der Worker-Thread sollte nicht warten und im Hintergrund arbeiten. Wie kann ich das bewerkstelligen?

5voto

Hassan Mokdad Punkte 5680

Versuchen Sie, eine BackgroundWorker die Ihre Arbeit in einem separaten Thread und nicht im Hauptthread erledigt.

Prüfen Sie dies enlace um zu sehen, wie man mit einem Hintergrundarbeiter arbeitet.

1voto

Jon Skeet Punkte 1325502

Sie haben nicht gesagt, was Ihr Worker-Thread macht. In der Annahme, dass Sie bereits einen Hintergrund-Thread verwenden, ist meine Vermutung, dass Sie Folgendes verwenden Control.Invoke ou Dispatcher.Invoke die Aufrufe blockieren, um mit der Benutzeroberfläche zu kommunizieren.

Wenn Sie Control.BeginInvoke ou Dispatcher.BeginInvoke stattdessen werden Sie nicht blockiert. Bei diesen Aufrufen wird einfach eine Nachricht an den UI-Thread gesendet, ohne auf die Verarbeitung zu warten.

Es kann natürlich auch etwas anderes dahinterstecken - mehr Informationen würden uns wirklich weiterhelfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X