程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> VC++ AfxBeginThread 與 CreateThread 的區別,vcafxbeginthread

VC++ AfxBeginThread 與 CreateThread 的區別,vcafxbeginthread

編輯:C++入門知識

VC++ AfxBeginThread 與 CreateThread 的區別,vcafxbeginthread



簡言之:
AfxBeginThread是MFC的全局函數,是對CreateThread的封裝。
    CreateThread是Win32 API函數,前者最終要調到後者。

具體說來,CreateThread這個 函數是windows提供給用戶的 API函數,是SDK的標准形式,在使用的過
程中要考慮到進程的同步與互斥的關系,進程間的同步互斥等一系列會導致操作系統死鎖的因素,用起來
比較繁瑣一些,初學的人在用到的時候可能會產生不可預料的錯誤,建議多使用AfxBeginThread,是編譯
器對原來的CreateThread函數的封裝,用與MFC編程(當然,只要修改了項目屬性,console和win32項目
都能調用)而_beginthread是C的運行庫函數。
2>
在使用AfxBeginThread時,
線程函數的定義為:UINT   _yourThreadFun(LPVOID   pParam)    參數必須如此
在使用CreateThread時,
線程的函數定義為: DWORD WINAPI _yourThreadFun(LPVOID pParameter)
兩者實質是一樣的,
不過AfxBeginThread返回CWinThread指針,就是說它會new一個CWinThread對象,而這個對象在線程運行結束時是會自動刪除的,
CreatThread,它返回的是一個句柄,如果你不使用CloseHandle的話就可以通過它安全的了解線程狀態,
最後不要的時候CloseHandle,Windows才會釋放資源

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved