用Windows API实现多线程--原理例子
首先必須包含頭文件windows.h
下面是一個簡單的例子:在主函數中開啟新的子線程執行函數f()。
#include <windows.h>
#include <iostream>
using namespace std;
void WINAPI f1(LPVOID pvThread)
{
??? while (true)
??? {
??? ??? printf("inside thread 1/n");
??? ??? Sleep(1000);
??? }
}
void WINAPI f2(LPVOID pvThread)
{
??? while (true)
??? {
??? ??? printf("inside thread 2/n");
??? ??? Sleep(2000);
??? }
}
int main()
{
??? HANDLE hThread1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)f1,NULL,0,NULL);
??? HANDLE hThread2 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)f2,NULL,0,NULL);
???
??? if(hThread1 != NULL)
??? {
??? ??? WaitForSingleObject(hThread1, INFINITE);
??? ??? CloseHandle(hThread1);
??? }
??? if(hThread2 != NULL)
??? {
??? ??? WaitForSingleObject(hThread2, INFINITE);
??? ??? CloseHandle(hThread2);
??? }
??? return 0;
}
其中
if(hThread != NULL)
{
?? WaitForSingleObject(hThread, INFINITE);
?? CloseHandle(hThread);
}
這一段很重要,這段讓主線程保持住。如果沒有這段的話,執行完上一句,主線程不等子線程執行就退出,從而子線程也跟著退出了,就達不到效果。
參考整理于此處:http://topic.csdn.net/t/20020811/00/931486.html#
總結
以上是生活随笔為你收集整理的用Windows API实现多线程--原理例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡还完款后可以马上使用吗
- 下一篇: 一种简洁明了地读取文本文件的方法