C#多个虚拟串口从设备读取数据 100
现在做一个程序,希望从多个虚拟串口读取数据,现在用多线程已经实现从多个虚拟串口读取数据,并成功的显示在datagridview中,虽然用了多线程,但是每个线程读取的数据是...
现在做一个程序,希望从多个虚拟串口读取数据,现在用多线程已经实现从多个虚拟串口读取数据,并成功的显示在datagridview中,虽然用了多线程,但是每个线程读取的数据是一个一个依次随机的读取的,不是同时读取并显示出来。
现在想实现读取数据时,每个串口基本同步的读取数据,这样的话效率就会提高很多,如何实现呢?希望高手指点一下
多线程:
for (int i = 0; i < guabiaoshu; i++)
{
Thread myThread = new Thread(new ThreadStart(ReadAddress));
myThread.Name = String.Format("Thread{0}", i);
myThread.Start();
}
先在此谢过!
本人菜鸟,所以希望有程序说明最好,解决问题财富值可以追加哦! 展开
现在想实现读取数据时,每个串口基本同步的读取数据,这样的话效率就会提高很多,如何实现呢?希望高手指点一下
多线程:
for (int i = 0; i < guabiaoshu; i++)
{
Thread myThread = new Thread(new ThreadStart(ReadAddress));
myThread.Name = String.Format("Thread{0}", i);
myThread.Start();
}
先在此谢过!
本人菜鸟,所以希望有程序说明最好,解决问题财富值可以追加哦! 展开
1个回答
展开全部
按我的理解 其实关键还在ReadAddress上,不管你开多少线程,都是调用同样的方法,一个线程不结束,另外一个也调用此方法的话,会发生死锁的。
解决办法是将方法放入一个类封装,每次开启线程后,调用的方法——首先初始化类,然后再执行类里面的方法,这样就分开了,也就不会一个一个来执行了。
解决办法是将方法放入一个类封装,每次开启线程后,调用的方法——首先初始化类,然后再执行类里面的方法,这样就分开了,也就不会一个一个来执行了。
更多追问追答
追问
我是菜鸟,如何封装,能不能代码示之!
追答
具体得看看方法里面了,或者自己再建一个方法 这个方法实现 实例化类,再调用类里面的ReadAddress 这样在每个线程里面执行的这个方法都是重新实例化过的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询