看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC 問題(Question): 想請問如何獲得AfxBeginThread後產生子執行緒的運算結果 如下面所貼的單純程式碼 要如何回傳子執行緒內所得到iThread值呢? 希望大家能提供一點意見 感激不盡!! 謝謝!! 程式碼(Code):(請善用置底文網頁, 記得排版) struct THREAD_INFO //用於傳遞執行參數子執行緒的資料型態 { HWND hWnd; //產生執行緒的視窗物件 int iValue; }Thread_Info; //建立執行緒參數為全域變數 void CMultiTestDlg::OnBnClickedButton1() { Thread_Info.iValue = 1; //要輸入的參數 AfxBeginThread(Thread, (LPVOID)&Thread_Info); //產生一個子thread } UINT CMultiTestDlg::Thread(LPVOID pParam) //執行緒函數 { THREAD_INFO *Thread_Info = (THREAD_INFO*)pParam; //建立一個THREAD_INFO的結構指標 傳入Thread的參數 int iThread = Thread_Info->iValue + 1; //不知該如何將此值回傳... return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.212.97 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1429257154.A.7F3.html
sos0214: iThread變數宣告在class來取值? 04/17 17:00
Ting1024: 全域變數即可。 04/17 17:14 謝謝樓上二位的熱心解惑!! 等等就來試看看!! ※ 編輯: srxrrr (123.193.58.198), 04/18/2015 01:00:06
Keitaro: 可以的話 盡可能不要用全域變數 04/18 21:46
Keitaro: 盡量寫成member variable比較好 04/18 21:47
Keitaro: 但是要寫值跟取值 在MultiThread時要用CCriticalSection 04/18 21:47