我有一个用wxWidgets创建的GUI应用程序。作为功​​能的一部分,我必须在操作GUI窗口的同时运行“任务”。例如,我可以运行代码:

long currentTime = wxGetLocalTime();
long stopTime = wxGetLocalTime() + 3;
while (wxGetLocalTime() != stopTime) {}
wxMessageBox("DONE IN APP");

在那3秒钟的时间内,我的应用程序实际上将被冻结,直到显示wxMessageBox为止。有没有一种方法可以在不使用多个线程的情况下在后台运行它?它为我正在开发的应用程序带来了问题。

我想知道是否可以使用某些类型的事件处理。任何帮助都将不胜感激。

最佳答案

试试这个:

long currentTime = wxGetLocalTime();
long stopTime = wxGetLocalTime() + 3;
while (wxGetLocalTime() != stopTime) {
   wxYield();
}
wxMessageBox("DONE IN APP");

07-22 01:10