VS2008,.NET 2,VB.NET,XP ...爲什麼在使用WebBrowser控件關閉窗體時出現RaceOnRCWCleanup錯誤?
我有一個Windows窗體,一個WebBrowser控件和一個關閉按鈕,它只是做一個Me.Close
。窗體的取消按鈕設置爲關閉按鈕,以便我可以按ESC鍵關閉窗體。
我在加載事件中設置了WebBrowser控件的DocumentText
屬性,並顯示了HTML。
從Visual Studio運行應用程序,如果我單擊「關閉」按鈕,表單將關閉而沒有錯誤。
如果我打的ESC鍵,我得到檢測
RaceOnRCWCleanup 消息:已經嘗試到 免費的RCW是在使用的正確性。 RCW 正在使用活動線程或 另一個線程。試圖釋放使用中的RCW的 可能會導致數據丟失或損壞 。
如果我在VS之外運行應用程序,則不會出現錯誤。
任何想法a)爲什麼錯誤,和b)如何防止或抑制它?
許多在此先感謝。
不,它都發生在前臺線程上。 事實並非如此令我困擾 - 有些方法可以在VS中關閉它們。事實上,如果通過單擊關閉按鈕調用Close事件處理程序,它將不會發生,但如果通過按ESC調用同一個處理程序(因爲關閉按鈕是窗體的取消按鈕屬性),它*不*。 爲什麼區別? – ChrisA 2009-12-10 09:17:12
我看到了這個確切的場景..這對我來說不是問題,因爲我想用webBrowser關閉窗體。我想了解爲什麼按ESC鍵並點擊'X'有什麼區別。 – mpeterson 2010-02-19 23:07:01
@chris,@mpeterson - 得到了一個repro和一個解決方案,發佈了更新。 – 2010-12-30 19:03:13