[問題] winapi的thread問題..

看板C_and_CPP (C/C++)作者 (Blue Sapphire)時間16年前 (2009/12/12 03:49), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚)想呼叫sort,用thread方式切割陣列加速 希望得到的正確結果:要怎麼製造thread傳值給sort函數? 我原本的想法是製造thread的時候直接指定thread呼叫sort CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)sort, NULL, 0,&ThreadID); 可是....我看msdn很難的英文範例.. [1] Microsoft CreateThread example: http://msdn.microsoft.com/en-us/library/ms682453(VS.85).aspx [2] Microsoft semaphore example: http://msdn.microsoft.com/en-us/library/ms686946.aspx 裡面semaphore example製造的thread是呼叫 DWORD WINAPI ThreadProc( LPVOID lpParam ) 看來看去似乎原本的createThread不能直接呼叫sort,要寫一個threadproc之類的 再從裡面呼叫sort函式嗎? 如果是只能這樣製造thread,那我是不是要呼叫幾次sort就要分別寫個別的threadproc 然後丟進去不同的參數去呼叫sort? 我想不通因為要是是這樣的話...今天要做一件很大的事情工程師不是就要手痠寫好幾萬 個threadproc1,threadproc2等等...才能做出multiple thread... 希望我以上敘述不會太難懂^^"... 程式跑出來的錯誤結果:已經把sort寫好,可是不知道怎麼運用win api製造 thread和用semaphore (我想說先問thread使用方式,我自己花時間再研究semaphore) 這樣才不會被說是丟作業給鄉民做 囧... 開發平台: visual studio 2008 有問題的code: (請善用置底文標色功能) void merge(int AstartingIndex, int sizeA, int BstartingIndex, int sizeB){ 要合併sort array A 和 arrayB 到 arrayC } main(){ 要製造thread?研究怎麼使用中.. } 補充說明:希望這樣的說明能證明我有研究過orz... google也詢問過了..但是還是不太懂.. 希望鄉民能幫我解惑關於createthread要怎麼使用的方法.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.64.6

12/12 15:39, , 1F
你可以直接呼叫sort來做排序 但是sort需要是static
12/12 15:39, 1F

12/12 16:04, , 2F
有鄉民跟我說把要傳的參數包成struct傳進去了0.0
12/12 16:04, 2F

12/12 16:04, , 3F
謝謝樓上 和謝謝熱心的鄉民.
12/12 16:04, 3F

12/12 17:25, , 4F
sort 是static function 傳進去的參數你就丟妳要排序得值
12/12 17:25, 4F
文章代碼(AID): #1B8g9G0g (C_and_CPP)
文章代碼(AID): #1B8g9G0g (C_and_CPP)