在這篇文章中,我們會為大家詳細推出C++ CreateThread參數的具體應用方法,以幫助大家能夠從中獲得一些幫助,提高編程效率。那麼接下來就讓我們一起來看看C++ CreateThread參數的正確使用方法吧。
項目是VS2003下的,用到了CreateThread函數,看到網上說不應該調用CreateThread,而應該使用_beginthreadex。因為剛好用到了,就還是寫一下CreateThread中參數的使用方法。
先定義要傳遞的C++ CreateThread參數結構體:
- typedef struct SParam
- {
- int No;
- unsigned short chnlID;
- unsigned short sessionID;
- }uParam,*sParam;
- DWORD WINAPI AccountManager(PVOID pParam);
- void main()
- {
- DWORD dwThreadId;
- HANDLE hThrd = NULL; // thread handle
- SParam sparam;
- SParam *p;
- sparam.No = 1;
- sparam.chnlID = 1;
- sparam.sessionID = 1;
- p = &sparam;
- hThrd = (HANDLE)CreateThread(NULL,
- 0,
- AccountManager,
- p,
- 0,
- dwThreadId;
- }
- DWORD WINAPI AccountManager(PVOID pParam)
- {
- sParam sparam;
- sparam = (sParam)pParam;
- try
- {
- /*Run為自己寫的一個方法,Run(int i,unsigned short
chnlID,unsigned short sessionID)*/- Run(sparam->No,sparam->chnlID,sparam->sessionID);
- }
- catch (...)
- {
- logger.error("AccountManager(%d): System error.\r\n", threadId);
- }
- }
大體意思是這樣,C++ CreateThread參數代碼僅供參考。