2011-05-10 14 views
0

完整的錯誤,我得到如下:WPF:融入的WinForms錯誤 - 「的CLR一直無法從COM上下文0x1a8188轉換爲COM上下文0x1a8018 60秒」

的CLR已經無法轉變從COM上下文0x1a8188到COM上下文0x1a8018 60秒。擁有目的地上下文/公寓的線程很可能要麼進行非抽水等待,要麼處理非常長的運行操作而不抽取Windows消息。這種情況通常會對性能產生負面影響,甚至可能導致應用程序無法響應或內存使用量不斷累積。爲了避免這個問題,所有的單線程單元(STA)線程都應該使用抽取等待原語(比如CoWaitForMultipleHandles),並在長時間運行的操作中定期抽取消息。

任何想法這是什麼意思?如何解決?我試圖在Google上搜索,但找不到任何後果,即與我的具體情況有關。

編輯: 特定情形: 1.集成WPF成的WinForms 2. WPF屏幕一個插件的DLL,其被動態加載到主應用程序寫入。

感謝

Hasanain

+0

如果您描述了您的「特定場景」,這將有所幫助。您是否在Visual Studio中調試應用程序? – 2011-05-10 16:26:53

+0

這發生在使用Visual Studio的調試會話期間以及這些會話之外以及當我簡單地啓動可執行文件時。具體的場景是指將WPF集成到WinForms應用程序中。 – Hasanain 2011-05-10 18:50:22

回答

1

這意味着,在你創建的線程A的對象,然後試圖用它的線程B,但線程A是真的很忙和COM對象需要將其上運行線程A.嘗試看看爲什麼線程A很忙。

+0

應用程序在訂閱模型上運行,當數據到達時,事件觸發,通知UI,隨後用新值更新。我使用MVVM模式,因此更新值只涉及更新模型。那麼這種情況下你會說哪個線程忙?因爲我不專門處理線程... – Hasanain 2011-05-10 19:04:46

+0

線程A可能是Winforms線程,線程B可能是WPF線程 - 很難說,沒有看到你的應用程序。你是否試圖從同一個線程運行WPF和WinForms?我們不知道... – 2011-05-11 01:01:24

相關問題