gpt4 book ai didi

wxwidgets - wxWidgets 中的 SendMessage 等价物是什么

转载 作者:行者123 更新时间:2023-12-04 23:32:01 25 4
gpt4 key购买 nike

我想将同步事件从工作线程发送到 UI 主线程。我如何在 wxWidgets 中做到这一点? sample 的链接真的很有帮助

最佳答案

您应该使用 队列事件(wxEvent* 事件)用于线程间通信。

void wxEvtHandler::QueueEvent(wxEvent* event)

wxDocumentation 指出:

队列事件()可以用于从工作线程到主线程的线程间通信,从某种意义上说它是安全的,因为它在内部使用了锁定并避免了 中提到的问题。 AddPendingEvent() 通过确保调用线程不再使用事件对象来记录文档。仍应注意避免该对象的某些字段被它使用,尤其是任何 wxString 事件对象的成员不能是另一个 的浅拷贝wxString 对象,因为这会导致它们在幕后仍然使用相同的字符串缓冲区。

你可以这样做:

wxCommandEvent* evt = new wxCommandEvent();

// NOT evt->SetString(str) as this would be a shallow copy
evt->SetString(str.c_str()); // make a deep copy

wxTheApp->QueueEvent( evt );

希望这会有所帮助。

关于wxwidgets - wxWidgets 中的 SendMessage 等价物是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com