[問題] MFC 執行緒 獲得回傳值方式

作者: srxrrr (幹!我是肌董)   2015-04-17 15:52:31
開發平台(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;
}
作者: sos0214 (kaleidoscope)   2015-04-17 17:00:00
iThread變數宣告在class來取值?
作者: Keitaro (動き出す時間...)   2015-04-18 21:46:00
可以的話 盡可能不要用全域變數盡量寫成member variable比較好但是要寫值跟取值 在MultiThread時要用CCriticalSection

Links booklink

Contact Us: admin [ a t ] ucptt.com