日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CPlus的简单线程的制作

發(fā)布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CPlus的简单线程的制作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、線程需要用到<widnows.h>

2、利用句柄創(chuàng)建并執(zhí)行線程:

HANDLE hThread = CreateThread(NULL, 0, Fun, &tp, 0, NULL);
CloseHandle(hThread);

注意:線程的函數(shù)必須是以DWORD WINAPI functionName(LPVOID lpParamter)的形式聲明

3、完整代碼如下:

?

#include <iostream> #include <windows.h> using namespace std; int i=0; struct threadParams {char* name;int age; }; DWORD WINAPI Fun(LPVOID lpParamter) {threadParams *sp = (threadParams*)lpParamter;cout<<"Have been started: "<<i++<<" secend(s)!\n";cout<<"name = "<<sp->name<<endl;cout<<"age = "<<sp->age<<endl;return 0; } /* HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,      // pointer to security attributesDWORD dwStackSize,                  // initial thread stack sizeLPTHREAD_START_ROUTINE lpStartAddress,       // pointer to thread functionLPVOID lpParameter,                   // argument for new threadDWORD dwCreationFlags,                // creation flagsLPDWORD lpThreadId                  // pointer to receive thread ID );第一個參數(shù)是指向SECURITY_ATTRIBUTES型態(tài)的結(jié)構(gòu)的指針。在Windows 98中忽略該參數(shù)。在Windows NT中,它被設(shè)為NULL。 第二個參數(shù)是用于新線程的初始堆棧大小,默認(rèn)值為0。在任何情況下,Windows根據(jù)需要動態(tài)延長堆棧的大小。 第三個參數(shù)是指向線程函數(shù)的指標(biāo)。函數(shù)名稱沒有限制,但是必須以下列形式聲明: DWORD WINAPI ThreadProc (PVOID pParam) ; 第四個參數(shù)為傳遞給ThreadProc的參數(shù)。這樣主線程和從屬線程就可以共享數(shù)據(jù)。 第五個參數(shù)通常為0,但當(dāng)建立的線程不馬上執(zhí)行時為旗標(biāo)CREATE_SUSPENDED。線程將暫停直到呼叫ResumeThread來恢復(fù)線程的執(zhí)行為止。 第六個參數(shù)是一個指標(biāo),指向接受執(zhí)行緒ID值的變量。*/ DWORD WINAPI inputAPI(LPVOID lp){char* s=NULL;cin>>s;if(s=="s"){exit(0);} } int main() {threadParams tp;tp.name = "tom";tp.age = 20;char* s = NULL;while(TRUE){if(i==20){cout<<"You have successed!Congratunations!"<<endl;break;}HANDLE hThread = CreateThread(NULL, 0, Fun, &tp, 0, NULL);CloseHandle(hThread);if(i==18){cout<<"Closing the thread!"<<endl;TerminateThread(hThread,0);//close a threadsystem("pause");}HANDLE INThread = CreateThread(NULL,0,inputAPI,NULL,0,NULL);CloseHandle(INThread);Sleep(1000);}//Sleep(1);//while(1) { cout<<"main display!\n"; Sleep(2000);}return 1; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/yuan951/p/4780485.html

總結(jié)

以上是生活随笔為你收集整理的CPlus的简单线程的制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。