contextswitchdeadlock

    2熱度

    2回答

    任何創造性的想法,以避免產出或睡眠死鎖與合作/非搶先多任務而不做O/S Thread.Sleep(10)?通常,良率或睡眠呼叫將回調到調度程序中以運行其他任務。但是這有時會產生僵局。 一些背景資料: 此應用對速度和巨大需求,到目前爲止,相對於同行業其他系統它的速度極快。其中一種速度技術是協作/非搶先式線程,而不是從O/S線程切換上下文的開銷。 高層次設計優先級管理器,根據優先級和處理時間調用任務。

    0熱度

    1回答

    長話短說:在C#應用程序與COM進程內服務器(DLL)的作品,我會遇到‘0x80010100:系統調用失敗’異常,並在調試模式下也ContextSwitchDeadlock例外。 現在,在細節更: 1)C#應用程序初始化STA,創建一個COM對象(登記爲「單元」);然後在訂閱了它的連接點,並開始與該對象工作 2)在某些階段的COM對象產生了很多的事件,作爲參數傳遞COM objec非常大集合ts,

    1熱度

    1回答

    我在這裏面臨一個非常奇怪的錯誤,我不太確定如果我遵循解決它的正確途徑,甚至如何解決它。 這是我面臨的問題:我開始調試使用log4net,NHibernate和LINQ到NHibernate的WPF應用程序,以及當我試圖從數據庫中獲取實體時,我的應用程序有時VS掛了很多時間,並在一段時間後的異常對話框打開,顯示含有上的ContextSwitchDeadlock MDA以下信息的消息: 的CLR一直無

    0熱度

    1回答

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

    0熱度

    1回答

    C#代碼從C++ dll檢索屬性值,並且此檢索會阻止當前線程,直到dll返回該值。在調試模式下,當檢索需要很長時間時,MDA會引發ContextDeadlockSwitch。 我想在運行時不可能抓到ContextDeadlockSwitch,但是有沒有一種類似於MDA的機制可以拋出類似的異常,C#可以捕獲以檢測這種死鎖? 原因是讓C#代碼提示用戶要麼繼續等待幾秒鐘,要麼強行關閉並重新啓動應用程序。

    0熱度

    1回答

    如何防止死鎖?有沒有任何算法可以做到這一點?我有兩個進程:一個持有信號量,另一個等待信號量。當持有信號量的進程已經死亡時,發生死鎖。我的問題是有無論如何(在信號或 操作systme),以避免這種情況呢?謝謝!

    -1熱度

    1回答

    就像快速的前文本我知道是什麼原因異步等待死鎖問題,但我仍然有問題。希望我只是忽略了一些簡單的東西。 我有一個有趣的問題,我擴展了Entity Frameworks IdentityDBContext的保存功能。我正在擴展這個並覆蓋這些方法。 int SaveChanges(); Task<int> SaveChangesAsync(); Task<int> SaveChangesAsync(C

    0熱度

    1回答

    所以我正在運行一個單元測試,這是一個「壞」的單元測試,它需要運行一個時間。 (它曾經工作得很好) 現在我得到的上下文切換死鎖檢測到的錯誤,我猜測,因爲它是 這樣一個漫長的過程(20分鐘)做整個測試。 就像這裏描述: http://bytes.com/topic/c-sharp/answers/471705-context-switch-deadlock-detected 有什麼我可以做的就是單元測

    0熱度

    1回答

    我試圖加載一個表格適配器asynchronously。我使用了await方法。 的Xaml: <ComboBox x:Name="IDComboBox" Grid.Column="1" DisplayMemberPath="ID" HorizontalAlignment="Left" Height="Auto" ItemsSource="{Binding}" Margin="3" Grid.Row