Nie wiem zbyt wiele na temat Windows Message Pump, ale domyślam się, że zdarzenia są uruchamiane za pomocą Message Pump.Wyczyść wiadomości w Windows Message Pump
1) Kiedy moja kontrola przeglądarka przechodzi do niektórych stron internetowych, tworzy różne wydarzenia dokumentów ukończenia, raz ja mam to, co potrzebne w WebBrowser_Document_Completed(), chcę ignorować wszystkie kolejny dokument completion.How Czy mogę to zrobić?
2) Jeśli mogę pokazać MessageBox() w Document_Completed (...), pokazuje on wiele okno komunikatu, pokazuje, że działa on na równoległym threads.but gdy debugować go, i znaleźć, że działa on zawsze na głównym wątku.to gdy są tworzone inne dwa wątki?
3) W tym samym czasie, kiedy naciśnij blisko, zamyka okno, ale proces nadal działa w tle, nie używam żadnego innego wątku nadal widzę dwa inne wątki podczas debugowania. Wielkie dzięki.
Jak tylko pojawi się pierwszy wydarzenie, możesz zrezygnować z subskrypcji wydarzenia lub użyć flagi, aby zignorować wydarzenie? Btw jak doszedłeś do wniosku, że istnieje wiele wątków? –
@SriramSakthivel Program nie pójdzie dalej, jeśli Dialog Result nie zostanie zwrócony, jeśli działa na tym samym wątku, to jak wiele Skrzynek z wiadomościami jest wyświetlanych jednocześnie, Tak jak wywnioskowałem – Charlie
Reentracja może to spowodować, więc technicznie pojedynczy wątek może to zrobić. Wyświetl komunikat "Thread.CurrentThread.ManagedThreadId" w oknie wiadomości, aby potwierdzić, że naprawdę są to różne wątki. –