2012年3月26日星期一

windows中的多线程处理

(一)建立新线程的函数


1.Win32 API函数 CreateThread
HANDLE WINAPI CreateThread(
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in SIZE_T dwStackSize,
__in LPTHREAD_START_ROUTINE lpStartAddress,
__in_opt LPVOID lpParameter,
__in DWORD dwCreationFlags,
__out_opt LPDWORD lpThreadId
);


2.也可以用C运行库的函数 _beginthread 来创建新线程
uintptr_t _beginthread( 
void( *start_address )( void * ),
unsigned stack_size,
void *arglist
);


(二)线程间通讯方法:


1.消息通讯
可以在线程中用SendMessage发送自定义消息到指定窗口
LRESULT WINAPI SendMessage(
__in HWND hWnd,
__in UINT Msg,
__in WPARAM wParam,
__in LPARAM lParam
);


2.创建线程时可以传递一个结构体的指针
3.利用全局变量来通讯

没有评论:

发表评论