目前有很多设备的端口,系统需要定时的取得各个端口的状态数据。
现在在下的想法是,开多线程且用多个timer来定时(每个端口定时取数据的时间不一样)。不知道这种方法是否可行,或者有更好的解决方案。
感谢大家帮助!:)
现在在下的想法是,开多线程且用多个timer来定时(每个端口定时取数据的时间不一样)。不知道这种方法是否可行,或者有更好的解决方案。
感谢大家帮助!:)
解决方案 »
- 如何得到GUI程序中的Console.WriteLine输出
- 急:为何我通过程序打开某个exe,进行里面有,但是这个exe不显示?
- 跪求几个C#显示CAD的问题
- c# winform 的经典例子有哪些?
- 在access数据库中,这一句错在哪里: select * from 大表 where 学校 link '%河南%'
- DevExpress.XtraPrinting.Preview.PrintPreviewStatusPanel printPreviewStatusPanel3;
- 求zedgraph例子使用
- 窗口为什么会自动关闭?很奇怪。
- 关于数据集Dataset的问题
- 快来呀,高分寻找C#编程方法,小兄开始学C#请多指教
- 求reporting services打印边距设定方法?在线等...
- 分多了,散分
不用timer.
如果用timer,也可以不用thread
Thread thread = new Thread(new ThreadStart(process));
thread.Start();process()
{
while(1)
{
//处理扫描端口状态
sleep(5000);//5秒扫描一次
}
}
2.Timer
在Timer事件中
调用process()函数,process()函数如下;
process()
{
//处理扫描端口状态
}
3.上面的方式也可以利用线程来处理
在Timer事件中使用线程如下:
Thread thread = new Thread(new ThreadStart(process));
thread.Start();process函数如下:
process()
{
//处理扫描端口状态
}
每个线程可以用Sleep方法在不扫描的时候休眠来减少消耗。
用线程去监听端口,Timer去计算监听间隔时间
通过线程间传值,将Timer计算出的时间传给线程
用线程去监听端口,Timer去计算监听间隔时间
通过线程间传值,将Timer计算出的时间传给线程我的想法就是这样,就是不知道如何实现。