win7 64bit, VB express 2010.

I'm working on a project. The main form is a MDI parent, it host a control form. on control form, there is a button. when click it, it will start, say 10, threads.

each thread will open a standard alone form (not mdi). on each form, it has a web browser control. when the form opened, it will start a new thread which makes the web browser control load a url, then depends on the links in that url, it will load another url, and loop for some times. then, the thread stops, and the form closes.

for some reasons, I got this weird exception:

AccessViolationException was unhandled by user code. Attempted to read or write protected memory. This is often an indication that other memory is corrupted.

1) the exception happens randomly, and not always happen. when it happens, it is always some code related with the web browser, i.e.

Not (MDIWebBrowser.ReadyState = WebBrowserReadyState.Complete)

or

MDIWebBrowser.Document.Body.InnerText()

2) I put a try catch in, but, it can not catch this exception. If I just close the exception dialog, sometimes, it keeps running without problems. sometimes, it just pauses the webbrowser control.

so, I did some research. it seems many people had the exact same problem. and it seems the best choice is:

http://stackoverflow.com/questions/1...ationexception

I checked all solutions suggested, even manually change the DEP, by using
"bcdedit.exe /set {current} nx AlwaysOff"

but, the exception still pops up.

anyone had this problem before? any suggestions?



thanks