c++如何写多线程,分一个线程来实时更新结果,具体如下

voidtask(){//多线程while(true){...不断的计算,返回一个value}}intmain(){while(true){获取多线程计算的value然后... void task() {//多线程
while(true) {

...不断的计算,返回一个value
}
}

int main() {
while(true) {

获取多线程计算的value

然后继续执行其他操作

}
}

我是想一直更新value,而主线程执行完一次循环后,会获取最新的value值继续执行下去,多线程用来一直更新值,刚学多线程,不知道该怎么写,能指导一下吗,谢谢
展开
 我来答
空雪梦见
推荐于2016-06-28 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1163万
展开全部
#include <windows.h>
#include <process.h>
#include <stdio.h>

volatile HANDLE waitForStart;
volatile HANDLE waitForResult;
volatile int result;

DWORD APIENTRY task(LPVOID* p)
{
    for(;;)
    {
        WaitForSingleObject(waitForStart, INFINITE);
        ++result;
        SetEvent(waitForResult);
    }
    
    return 0;
}

int main()
{
    HANDLE thread;

    result = 0;
    waitForStart = CreateEvent(0, FALSE, FALSE, 0);
    waitForResult = CreateEvent(0, FALSE, FALSE, 0);
    
    thread = (HANDLE)_beginthreadex(0, 0, task, 0, 0, 0);
    CloseHandle(thread);
    
    for(;;)
    {
        SetEvent(waitForStart);
        WaitForSingleObject(waitForResult, INFINITE);
        printf("%d\t", result);
    }
    
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式