我在写一个能够处理与外部设备(即读写)的所有串行通信的类。数据以20Hz传输到计算机,偶尔也会将数据写入设备。然后,该类将通过事件将有效数据输出到主UI。 我想把这个类放在一个单独的线程中,因为我之前的代码在设备中导致了一些'口吃',因为它在主UI线程中。如何使用线程/后台工作者C#实现SerialPort?
我只是不确定如何使用线程/后台工作器来构造和实现SerialPort类,因为我在这方面没有经验。
只有数据接收事件存在于线程/后台工作者内部吗? 如何将数据传入和传出创建的线程/后台工作者?
任何提示或建议将不胜感激!
我做了一些关于msdn网站的进一步调查,并且我读到DataReceieved事件是在单独的线程上创建的。那么这是否意味着事件处理程序中处理的内容已经在单独的线程中?那么我试图做多余? – steeppham 2010-08-08 07:37:28
嗯,是的,我想这是... =)只要确保你使用BackgroundWorker或类似的东西的UI,所以你不要“挂”用户界面,这是你需要使用线程的地方。所以整个串行端口的处理都在一个线程中,在你使用的事件中。 – 2010-08-11 09:40:39