【发布时间】:2023-03-20 02:24:01
【问题描述】:
标题很清楚,我只需要知道是否有一种方法可以休眠几毫秒,然后在不停止 GUI 的情况下调用函数。我现在的做法是添加 Sleep(3000);,这会使 GUI 冻结,直到睡眠时间结束。
我尝试在线程中添加Sleep(),然后调用一个函数,但它不起作用,因为该函数在 GUI 元素中进行了修改,而线程不允许您访问 GUI 元素(如标签, 按钮...)。
那么我应该怎么做才能让我的代码等待几秒钟才能继续,但不停止 GUI?
顺便说一句,Sleep 在 backgroundWorker_RunWorkerCompleted 内(这只是 backgroundworker 完成后的回调)。
void backgroundWorker_RunWorkerCompleted(Object^ /*sender*/, RunWorkerCompletedEventArgs^ e){
printf("Done, Waiting 3 seconds to do something that has to be 3 seconds after.");
Sleep(3000); //at this point the UI freezes
this->CallFunction();
}
关于如何做到这一点的任何提示/建议?
【问题讨论】:
标签: c++ visual-studio-2008 visual-c++ c++-cli