更新UI控件的正确方法

时间:2014-05-21 07:36:27

标签: .net c++-cli

我正在开发一种软​​件,需要不断从串口读取数据并向用户显示值。

所以我有一个带循环的线程,不断读取串口。 哪种更新表单控件的正确方法是为了获得流畅的用户体验? 到目前为止,我发现计时器不起作用,因为读取线程阻止它的执行,如果我在线程内创建一个Thread::Sleep(300)的新线程也不起作用。

BTW,我可能已经注意到,我是c ++ / cli的新手。

1 个答案:

答案 0 :(得分:1)

考虑在C ++ / CLI中使用BackgroundWorker组件。在msdn中定义的BackgroundWorker:

  

BackgroundWorker类允许您对a运行操作   独立的专用线程。下载等耗时的操作   和数据库事务可能会导致您的用户界面(UI)   就好像它们在运行时停止响应一样。当你   想要一个响应式用户界面,你将面临长时间的延迟   通过这样的操作,BackgroundWorker类提供了方便   溶液

将循环代码和代码与DoWork事件中的UI控件进行通信。

查看本教程,了解如何在C ++ / CLI中使用BackgroundWorker

C++/CLI Background Worker Tutorial

但在进入教程之前,我建议您了解.net中的后台工作程序,以便了解其工作原理。

BackgroundWorker Class