【发布时间】:2014-02-21 07:35:03
【问题描述】:
我有一个大约 20 秒后结束的手术。为了避免冻结,我想创建一个线程并每秒更新一个标签文本。查了很多,因为每个人意见不一,所以没办法决定用什么方法。
我尝试了 SendMessage 并且它有效,但有些人认为使用 SendMessage 不安全,我应该改用 PostMessage。但是 PostMessage 失败并显示 ERROR_MESSAGE_SYNC_ONLY (1159)。
char text[20] = "test text";
SendMessage(label_hwnd, WM_SETTEXT, NULL, text);
我对此进行了搜索,我认为这是因为在 PostMessage 中使用了不允许的指针。这就是它失败的原因。
那么,我该怎么办?我糊涂了。你有什么建议?这种方法对改变其他线程中的 UI 元素有好处吗?
谢谢
【问题讨论】:
-
“有些人”有没有提到为什么它不安全?
标签: c++ multithreading mfc thread-safety sendmessage