【发布时间】:2014-03-15 15:41:38
【问题描述】:
我开发了一个应用程序,在该应用程序中,我不断地在串行端口发送请求和读取响应,并更新巨大的 GUI,包括 zed 图形、objectlistviews、模拟仪表。
目前我正在使用一个线程在串行端口执行请求和响应并将数据推送到队列中,另一个线程正在从队列中获取数据并更新 GUI。 为此,我使用 Autoresetevent(Set and waitone) 在队列中有数据时通知 GUI 线程。
这实际上是顺序操作,因此无论串行端口的数据如何,都应立即更新到 GUI 中。类似于下面的模型
1 响应 -> 更新 GUI -> 2 响应 -> 更新 GUI -> 3 响应 -> 更新 GUI -> 依此类推..
每当我在串行端口上遇到任何错误时,完整的模型就会变得一团糟,并且 GUI 没有正确更新。
谁能告诉我应该采用什么方法来实现上述目标?
由于英语不是我的第一语言,如果有人需要进一步改进问题,请告诉我。
.net 框架 3.5 SP1 和 VS 2008
【问题讨论】:
-
你能贴一些代码吗?
-
目标 .NET 框架版本是什么,您的 Visual Studio 版本是什么?
-
@Noseratio 请查看更新后的问题
标签: c# multithreading user-interface serial-port queue