2011-01-07 13 views
0

我需要使用cwinthread或afxbeginthreads創建新線程(diffrent class)。我不知道如何開始,我需要使用哪一個。請幫助... 感謝如何用MFC C++中的線程開始編程?

+0

創建一個線程很簡單,但讓多個線程正確協作是非常困難的。如果你至少沒有閱讀關於這個主題的好書,那麼你會後悔的。 – Niki 2011-01-07 11:50:18

回答

1

有兩種類型的線程在MFC:

  • 工作線程只是在後臺執行任務然後退出其中有一個消息泵
  • 用戶界面線程,即你可以PostMessage的吧

當我很久以前在MFC中使用它時,我非常不喜歡創建這個類,因爲它們強迫你使用它的工廠來完成它,因此你不能用它需要用來執行的參數初始化它,如InitInstance ()它也不需要參數(我認爲)。換句話說,除非你將它們創建爲暫停狀態,否則你實際上無法傳遞任何上下文數據,而我發現我總是必須這樣做。

工作線程是我也喜歡做沒有MFC的東西,因爲我非常不喜歡MFC的非侵入性到非GUI代碼,即我不介意它太多Widgets庫,但發現一次你把它放在你被「卡住」的項目上。

我不得不支持MFC項目,但項目中的任何新代碼區域都會遠離MFC,甚至在可能的情況下使用Win32API。