CPlus的简单线程的制作
生活随笔
收集整理的這篇文章主要介紹了
CPlus的简单线程的制作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、線程需要用到<widnows.h>
2、利用句柄創建并執行線程:
HANDLE hThread = CreateThread(NULL, 0, Fun, &tp, 0, NULL);
CloseHandle(hThread);
注意:線程的函數必須是以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 );第一個參數是指向SECURITY_ATTRIBUTES型態的結構的指針。在Windows 98中忽略該參數。在Windows NT中,它被設為NULL。 第二個參數是用于新線程的初始堆棧大小,默認值為0。在任何情況下,Windows根據需要動態延長堆棧的大小。 第三個參數是指向線程函數的指標。函數名稱沒有限制,但是必須以下列形式聲明: DWORD WINAPI ThreadProc (PVOID pParam) ; 第四個參數為傳遞給ThreadProc的參數。這樣主線程和從屬線程就可以共享數據。 第五個參數通常為0,但當建立的線程不馬上執行時為旗標CREATE_SUSPENDED。線程將暫停直到呼叫ResumeThread來恢復線程的執行為止。 第六個參數是一個指標,指向接受執行緒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; }?
轉載于:https://www.cnblogs.com/yuan951/p/4780485.html
總結
以上是生活随笔為你收集整理的CPlus的简单线程的制作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一种在MVC3框架里面设置模板页的方法,
- 下一篇: Android设计模式——单例模式(Si