Ich weiß nicht viel über Windows Message Pump, aber ich denke, Ereignisse werden mit Message Pump ausgelöst.
1) Wenn mein Web-Browser-Steuerelement zu einigen Websites navigiert, erstellt es verschiedene Ereignisse der Dokumentvervollständigung. Sobald ich die benötigten Informationen in WebBrowser_Document_Completed () gefunden habe, d Ich möchte alle weiteren Dokumentvervollständigungen ignorieren. Wie kann ich das tun?
2) Wenn ich eine MessageBox () in Dokument_vollständig (...) zeige, wird angezeigt Mehrere Message-Box, zeigt, dass es auf parallelen threads ausgeführt. Aber wenn ich es debuggen, finde ich, dass es immer auf main thread.so wenn andere zwei Threads erstellt werden?
3) Wenn ich gleichzeitig auf "close" drücke, schließt es das Fenster, aber der Prozess läuft immer noch im Hintergrund. Ich benutze keinen anderen Thread. Beim Debuggen sehe ich zwei andere Threads. Vielen Dank.
Der direkteste Weg, dies zu tun, besteht darin, Nachrichten abzufangen und auszuwerten, die an Ihr Steuerelement weitergegeben werden, indem Sie die WndProc () -Methode überschreiben. Mit ein wenig Debugger-Beobachtung können Sie die wm_message-Konstante identifizieren, die Ihrem Zielereignis entspricht, und dann den Ausführungsfluss entsprechend ändern. Es gibt ein ziemlich gutes Beispiel dafür auf der MSDN-Site: Ссылка
Um eine Vorstellung von der / den gesuchten Nachricht (en) zu erhalten, verwenden Sie folgende Referenz: Ссылка
Tags und Links c# multithreading webbrowser-control messagepump