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