如题,外界有N台可以串口通讯的设备,为了保证数据的实时性,没有采用轮询方式,采用了听人介绍的多线程方式,大约程序运行了20天左右的样子,程序就假死了,也不报错,也不采集数据了,只有关闭重新开启程序后这几个线程又能正常工作。我想请问是这个是由于多线程造成的问题,还是串口的采集没有处理好造成的?谢谢!timerDelegate = new TimerCallback(arr_lclaCommData[i].Doword);
arr_stateTimer[i] = new System.Threading.Timer(timerDelegate, autoEvent, 1000, 10000);这是新建时钟线程的代码,我是在程序开启时,通过一个for循环找出数据库中有多少台设备,从而建立多少个像以上那样的时钟线程。而串口通讯的代码则是学习 http://blog.csdn.net/wuyazhe/article/details/5598945
arr_stateTimer[i] = new System.Threading.Timer(timerDelegate, autoEvent, 1000, 10000);这是新建时钟线程的代码,我是在程序开启时,通过一个for循环找出数据库中有多少台设备,从而建立多少个像以上那样的时钟线程。而串口通讯的代码则是学习 http://blog.csdn.net/wuyazhe/article/details/5598945
解决方案 »
- c#使用正则,表达式是或关系,怎么获取起作用的匹配项?
- 高分求 c#中,把EXCEL的一个表导入数据库,请写下详细步骤··不胜感激··!!!!!急···············
- Object reference not set to an instance of an object.大侠们帮忙了
- 打印功能
- 急急!!追加数据到 SQL SERVE 表中(数据源:Excel)
- 如何用c#自动化测试
- WPF ListBox 问题
- 求以下代码,每个一百分,收到开贴给分
- 如何给某一个网站加密(CA认证?)
- 如何在C#的Windows form中触发事件,启动别的应用程序???
- 怎么获取word文档的属性信息!如:字体大小、颜色等。。
- 怎样配置iis ,才能运行web项目
{
if (!Directory.Exists("ErrLog"))
{
Directory.CreateDirectory("ErrLog");
}
using (StreamWriter sw = new StreamWriter(@"ErrLog\ErrLog.txt", true))
{
sw.WriteLine("来自:错误事件的异常!" + e. DateTime.Now.ToString());
sw.WriteLine("---------------------------------------------------------");
sw.Close();
}我在错误事件里写了日志,发现有错误,那通常在这个事件里出错了怎么处理串口,只有重新开启com就行吗?