Windows 下 C/C++ 多線程編程入門參考範例
阿新 • • 發佈:2017-05-26
tail emc repr com std using tle rom amp
[c-sharp] view plaincopy
- #include <windows.h>
- #include <iostream>
- using namespace std;
- DWORD WINAPI myThread(LPVOID argv);//聲明一個線程函數
- int main(int argc, char *argv[])
- {
- string s;
- HANDLE myHandle;
- do{
- cin.clear(); cin.sync();
- cin>> s;
- switch(s.at(0)){
- case ‘0‘:
- myHandle = CreateThread(NULL,0,myThread,(LPVOID)s.c_str(),0,NULL);//創建線程
- break;
- case ‘1‘:
- if(myHandle) SuspendThread(myHandle);//掛起線程
- break;
- case ‘2‘:
- if(myHandle) ResumeThread(myHandle);//恢復線程
- break;
- case ‘3‘:
- if(myHandle) TerminateThread(myHandle,0);//終止線程
- break;
- case ‘4‘:
- if(myHandle) SetThreadPriority(myHandle,THREAD_PRIORITY_NORMAL);//設定線程優先級
- break;
- default:
- break;
- }
- cout<< s << endl;
- }while(s!="exit" && s!= "quit");
- return 0;
- }
- DWORD WINAPI myThread(LPVOID argv){
- int i = 0;
- char buff[200];
- ZeroMemory(buff,sizeof(buff));
- memcpy(buff,argv,200);
- while(++i){
- cout<< "Extra thread executing with argument string:"<< buff <<endl;
- Sleep(1000);
- if(i == 40) ExitThread(0);//退出自身線程
- }
- }
Windows 下 C/C++ 多線程編程入門參考範例