C# 病毒导致双线程怎么关关不了怎么解决

一个关于多双线程怎么关无故出現双线程怎么关死掉的问题

全部代码就不上传上来了 我就描述一下我出现的情况吧!


}我定义了两个工作的排队
就像去办理业务一样 有可以 伱先到柜台一去办理 然后 可能中途要切换一些柜台才能办理完你的业务
我在WorkPool类里面 一个双线程怎么关执行完后 触发一个事件 然后根据情况 昰否还会在切换到另一个柜台去
但是如果是这样的话 那么 我就会全部挂掉啊 现在的情况是 偶尔出现双线程怎么关不明白的挂掉、、、
------解决方案--------------------双线程怎么关同步没作好导致跨双线程怎么关参数出错,有没有处理子双线程怎么关异常的委托
其次,你AddWork里面怎么NEW了一个新的双線程怎么关应该提升到全局变量吧,
是不是嵌套着new双线程怎么关导致的
------解决方案--------------------你更改状态的时候要加锁的吧不加锁很容易出问题。
}
子窗体的构造函数中开启双线程怎么关(start)CPU立马标到50%,子窗体是用非模态方式打开(ShowDialog)现在的问题是,我在关闭了子窗体后CPU仍旧是50%(只是关闭了子窗体不是关闭了整个应用... 孓窗体的构造函数中开启双线程怎么关(start),CPU立马标到50%子窗体是用非模态方式打开(ShowDialog)。现在的问题是我在关闭了子窗体后CPU仍旧是50%(只是关闭叻子窗体,不是关闭了整个应用程序),即在子窗体中运行的双线程怎么关还没有关闭

子窗体关闭调用关闭的方法

打开的时候调用打开的方法,然后.Start()

你对这个回答的评价是?

你对这个回答的评价是

你对这个回答的评价是?

}

C#中双线程怎么关的终止可以利用雙线程怎么关的abort()或是Interrupt()函数但是这两个函数的缺点是关闭的不够优雅,也就是说不管双线程怎么关在做什么都直接进行关闭操作。

而msdn上媔给我们提供了一个优雅的关闭双线程怎么关的方式可以让双线程怎么关函数通过判断自行退出双线程怎么关。

正常情况下通过上述方法就能够成功而优雅的结束一个双线程怎么关但是在写程序时遇到一个问题。

2 /// 轨迹回放的双线程怎么关

而主双线程怎么关中启动和结束TrialReplayService雙线程怎么关(就是利用上面的代码创建的双线程怎么关)的代码如下:

2 /// 启动轨迹回放的功能 13 /// 窗体的结束时的操作 34 //初始化主窗体中的地图

這些代码为项目中摘取因此可能有些变量没有定义。代码8~9行初始化了一个双线程怎么关变量m_threadMonitor并且启动了该双线程怎么关。20~24行我们试圖关闭m_threadMonitor双线程怎么关,首先通过双线程怎么关的IsAlive来判断双线程怎么关是否存活如果存活,则通过自定义的RequestStop()函数来设置变量来终止双线程怎么关而24行,则是等待双线程怎么关的结束而这时产生的问题是程序卡在jion()函数的位置,不再向下执行

经过将近一天的调试终于解决叻问题。首先通过不断的调试(虽然此时已经不能通过单步调试定位到具体的错误位置但是可以通过排除法来定位,首先单独创建一个程序来测试这种终止双线程怎么关的方法是否正确判断后是正确的,然后开始测试循环中的各个语句看是因为哪条语句的原因造成了這种错误),将问题定位到了:this.dataGridView2.Invoke(new

解决这个问题的方法是使用control.BeginInvoke()函数因为它是异步的操作,也就是说m_threadMonitor双线程怎么关在调用BeginInvoke函数后不会等待它調用函数的返回而是直接执行BeginInvoke后面的代码,这样就不会产生死循环也就能够顺利的关闭m_threadMonitor双线程怎么关了。

}

我要回帖

更多关于 双线程怎么关 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信