【发布时间】:2009-07-28 23:14:03
【问题描述】:
我正在用 C# 开发一个应用程序,它从串行端口获取数据、处理它并将其显示给 UI。 数据在 5-50 毫秒之间的速度非常快。在我没有使用任何线程之前。因此应用程序依赖于从串行端口获取数据、处理数据并将其显示给 UI 的单个 App 线程。它正在丢失一些数据。 然后我开始实现 BackgroundWorker 线程以消除单线程上的一些开销并考虑良好的性能。现在我收到“此 BackgroundWorker 目前很忙,无法同时运行多个任务”错误。我认为 Thread 无法应对来自串行端口的数据的速度。所以在执行“backgroundWorker1.RunWorkerAsync(data);”时抛出错误。我需要一些建议来实现这种场景的更好方法是什么?
【问题讨论】:
-
这个答案适用吗? stackoverflow.com/questions/588150/…
-
不是 100%,但我从所有这些支持 cmets 中获得了一种方法,我能够解决这个问题。谢谢
标签: c# multithreading serial-port backgroundworker