qq_34480269 2020-04-02 09:11 采纳率: 0%
浏览 140

windows应用程序设计线程下载

void beginUpdate()
{
HANDLE hUpdateImage;
hUpdateImage = CreateThread(NULL, 0, CQuickSearchDlg::updateImage, this, 0, NULL);
//WaitForSingleObject(hUpdateImage, INFINITE);

//while ( !(this->isDownloadFinished()) )
//{
//  Sleep(30 * 1000);
//}

HANDLE hUpdateVideo;
hUpdateVideo = CreateThread(NULL, 0, CQuickSearchDlg::updateVideo, this, 0, NULL);
}

我在一个函数中创建两个下载线程,怎么等这两个线程下载完成才往下进入到主线程呢,而不是创建线程结束就进入主线程?
我用了waitForSingleObject(),他会阻塞住主线程,然后窗口就一直转圈 ,提示是否要结束窗口应用。怎么解决呢,因为我要下载完才能进入主线程。
  • 写回答

1条回答 默认 最新

  • 小学狗喵喵叫 2020-04-02 09:39
    关注

    可以弄个全局变量flag,子线程完成后修改flag,主线程循环读取这个flag,检测到修改后再继续运行,或者子线程完成后向主线程发消息,主线程收到消息再继续运行。

    评论

报告相同问题?

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?