在主线程中调用CWinThread的函数

时间:2014-12-16 04:40:30

标签: multithreading mfc

我在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(); }

1 个答案:

答案 0 :(得分:0)

&#34;调用函数&#34;比如调用类的成员函数就是当前线程中的一个动作。

如果您希望在其他线程中异步执行Actions,则需要在线程之间进行一些通信。

如果第二个线程也有UI,则可以使用消息(PostMessage)向线程通知操作。 PostMessage也是向主线程通知工作线程结果的好方法。

如果您还需要传输数据(超过DWORD),则需要更复杂的数据交换,这也应该是线程安全的。

相关问题