- I don't know much about Windows Message Pump but I guess events are triggered using Message Pump.
When my Web browser control navigates to some websites it fires various events of Document Completion. Once I have what I need in WebBrowser_Document_Completed() I want to ignore all further Document Completion.
- How can I it?
If I show a MessageBox() in Document_Completed(...), It shows multiple message boxes, looks like it is running in parallel threads, but when I debug it I find that it runs always on main thread.
- When are the other two threads created?
Also, when I press Close it closes the window but the process is still running in the background. I am not using any other thread yet I still see two other threads when I debug.
The most direct way to do this will be to intercept and evaluate messages being propagated to your control by overriding it's WndProc() method. With a little bit of debugger observation you can identify the wm_message constant that corresponds to your target event and then alter execution flow accordingly. There is a pretty good example of this on the MSDN site: https://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
To get an idea of the message(s) you are seeing/looking for, reference: http://www.pinvoke.net/default.aspx/Constants/WM.html