Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何处理更新刷新率?_Multithreading_User Interface - Fatal编程技术网

Multithreading 如何处理更新刷新率?

Multithreading 如何处理更新刷新率?,multithreading,user-interface,Multithreading,User Interface,如何处理从worker函数到UI的更新刷新率 将所有内容发送到UI,或者从哪一方使用计时器?worker或UI?在Windows应用程序中,您通常希望在GUI线程中使用计时器对象来轮询worker状态-这更容易,除非您有很好的理由去做其他事情 您不能仅从Windows中的工作线程对UI例程进行函数调用。将导致未定义的行为,因此请小心 如果您的平台和开发环境支持它,那么某种异步消息传递系统工作得很好。在Win32下,我只使用我发布的普通windows消息,这样它们就不会阻塞线程,UI的标准主消息线

如何处理从worker函数到UI的更新刷新率


将所有内容发送到UI,或者从哪一方使用计时器?worker或UI?

在Windows应用程序中,您通常希望在GUI线程中使用计时器对象来轮询worker状态-这更容易,除非您有很好的理由去做其他事情


您不能仅从Windows中的工作线程对UI例程进行函数调用。将导致未定义的行为,因此请小心

如果您的平台和开发环境支持它,那么某种异步消息传递系统工作得很好。在Win32下,我只使用我发布的普通windows消息,这样它们就不会阻塞线程,UI的标准主消息线程会拾取消息并处理它们。我通常也定义自定义消息


使用计时器是次优的,应该不需要轮询此类信息。

这是有道理的,我只是被我想从ui获得的取消状态蒙蔽了双眼,我想我只需要有一个结构来始终更新状态,并始终从中检查取消值。现在我需要考虑一下此项的共享状态