我在MFC中使用CDialog。 在我的对话框中,我创建了一个ui-thread:
CWinthread *threadCom = dynamic_cast<MyThreadClass*>(AfxBeginThread(RUNTIME_CLASS(MyThreadClass)));
在我的对话框课程的某处,我写道: threadCom-&GT; MyFunction的();
我的问题是:&#34; MyFuction()&#34;在对话框或ui-thread的主线程中执行
在AlexanderVX发表评论后更新
例如,当用户点击对话框上的按钮
时CMyDialog::OnBtnClicked() { threadCom->MyFunction(); }
答案 0 :(得分:0)
&#34;调用函数&#34;比如调用类的成员函数就是当前线程中的一个动作。
如果您希望在其他线程中异步执行Actions,则需要在线程之间进行一些通信。
如果第二个线程也有UI,则可以使用消息(PostMessage)向线程通知操作。 PostMessage也是向主线程通知工作线程结果的好方法。
如果您还需要传输数据(超过DWORD),则需要更复杂的数据交换,这也应该是线程安全的。