普通任务线程池

  • Post author:
  • Post category:其他


#include <strsafe.h>
TCHAR pOutBuf[1024] = {};
#define PRINTF(...) \
    StringCchPrintfW(pOutBuf,1024,__VA_ARGS__);\
    WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),pOutBuf,lstrlen(pOutBuf),NULL,NULL);

DWORD WINAPI  ThreadPoolProc(LPVOID lparam)
{
	long * p = (long *)lparam;
	while (true)
	{
		Sleep(300);
		CString str;
		InterlockedIncrement(p);//原子相加
		PRINTF(_T("当前线程ID:%d  输出值:%d \n"), GetCurrentThreadId(),*p);
	}
	return 0;
}

int main()
{
	int iWait = 0;
	wscanf_s(_T("%d"), &iWait);
	
	//创建两个线程,和CreateThread相似
	QueueUserWorkItem(ThreadPoolProc, &iWait, WT_EXECUTEDELETEWAIT);
	QueueUserWorkItem(ThreadPoolProc, &iWait, WT_EXECUTEDELETEWAIT);

	getchar();
	getchar();
	
	return 0;
}
本文转自Chinayu201451CTO博客,原文链接:http://blog.51cto.com/9233403/2050160 ,如需转载请自行联系原作者