线程中启动对话框问题 Topic is solved

这是wxWidgets论坛的中文版本。在这里,您可以用您的母语汉语讨论上面任一子论坛所涉及的所有关于wxWidgets的话题。欢迎大家参与到对有价值的帖子的中英互译工作中来!
Post Reply
kingkamg
I live to help wx-kind
I live to help wx-kind
Posts: 187
Joined: Tue Apr 08, 2008 1:45 pm

线程中启动对话框问题

Post by kingkamg » Sun Oct 05, 2008 5:26 am

要在一个线程里面启动一个对话框并暂时停止线程的执行,根据对话框的返回值来确定线程下一步的操作,大家有什么好的建议吗?我考虑了两种方式:
1.使用wxCondition;
在线程里面需要暂停的地方向主线程发出消息,然后调用m_pCondition->Wait();主线程收到消息后调用对话框等待用户输入,对话框结束后再调用m_pCondition->Signal();方法来让线程恢复执行后续操作,当然前提是发送的消息里面要带着线程的指针。
2.使用wxMutexGuiEnter()和wxMutexGuiLeave()
这个具体就不说了,例子很简单

以上是我想到的两种方法,大家还有什么好的思路吗,我在线程里面调用wxMessageBox()方法好像可以,不知道该方法是否线程安全的

bloodlee
Experienced Solver
Experienced Solver
Posts: 77
Joined: Thu Nov 30, 2006 10:49 am
Location: Shenzhen, CHN

Post by bloodlee » Mon Oct 13, 2008 6:19 am

在线程里用wxMessageBox不安全, 有时CRASH.
还是多运用发送事件的方法, 不要直接在线程里调用gui-related的接口.

Post Reply