您的位置:首页 > 其它

VC6.0多线程的问题

2016-06-11 11:58 204 查看
    第一次写博客,用了默认编辑器,因为默认编辑器看起来比较简单。

    言归正传,在使用VC6.0试了一下最简单的开启线程测试,用的CreateThread,完整代码如下:

    #include<windows.h>

    #include<stdio.h>

    

    DWORD WINAPI myfun1(LPVOID lpParameter);

    DWORD WINAPI myfun2(LPVOID lpParameter);

    int main()

   {
    HANDLE h1;
    HANDLE h2;

           //创建线程1
    h1 = ::CreateThread(NULL,0,myfun1,NULL,0,NULL);
    printf("线程1开始运行!\r\n");

   //创建线程2
    h2 = CreateThread(NULL, 0, myfun2, NULL, 0, NULL);
    printf("线程2开始运行!\r\n");

   //关闭线程1
    ::CloseHandle(h1);

   //关闭线程2
    ::CloseHandle(h2);

   //退出
    while (1)
    {
    if (getchar() == 'q')
    return 0;
    else
    Sleep(100);
    }

    }

//线程1打印

    DWORD WINAPI myfun1(LPVOID lpParameter)

    {
     printf("线程1正在运行\n");
     return 0;

    }

//线程2打印

    DWORD WINAPI myfun2(LPVOID lpParameter)

    {
    printf("线程2正在运行\n");
    return 0;

    }

    运行后结果有异常,总有打印语句被执行两次,截图如下:



    

    每次结果都不太一样,比如:



    

    后来在VS上运行,结果正常,如图:



   

    不知道是什么原因,如果有高手知道,还望不吝赐教啊~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 VC6.0