MFC全局函數::AfxBeginThread

AfxBeginThread

     函數原型:

  CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc,
  LPVOID pParam,
  int nPriority = THREAD_PRIORITY_NORMAL,
  UINT nStackSize = 0,
  DWORD dwCreateFlags = 0,
  LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL
  );//用於創建工作者線程
  返回值: 一個指向新線程的線程對象的指針
  pfnThreadProc : 線程的入口函數,聲明一定要如下: UINT MyThreadFunction( LPVOID pParam );
  pParam : 傳遞入線程的參數,注意它的類型爲:LPVOID,所以我們可以傳遞一個結構體入線程.
  nPriority : 線程的優先級,一般設置爲 0 .讓它和主線程具有共同的優先級.
  nStackSize : 指定新創建的線程的棧的大小.如果爲 0,新創建的線程具有和主線程一樣的大小的棧
  dwCreateFlags : 指定創建線程以後,線程有怎麼樣的標誌.可以指定兩個值:
  CREATE_SUSPENDED : 線程創建以後,會處於掛起狀態,直到調用:ResumeThread
  0 : 創建線程後就開始運行.
  lpSecurityAttrs : 指向一個 SECURITY_ATTRIBUTES 的結構體,用它來標誌新創建線程的安全性.如果爲 NULL ,
  那麼新創建的線程就具有和主線程一樣的安全性.
  如果要在線程內結束線程,可以在線程內調用 AfxEndThread.
  結束線程的兩種方式
  當你在後臺用線程來打印一些圖形時.有時在打印一部分後,你希望可以停下來,那麼此如何讓線程停止呢.下
  面會詳細的向你解釋要結束線程的兩種方式
  1 : 這是最簡單的方式,也就是讓線程函數執行完成,此時線程正常結束.它會返回一個值,一般0是成功結束,
  當然你可以定義自己的認爲合適的值來代表線程成功執行.在線程內調用AfxEndThread將會直接結束線程,此時線
  程的一切資源都會被回收.
  2 : 如果你想讓別一個線程B來結束線程A,那麼,你就需要在這兩個線程中傳遞信息.
  不管是工作者線程還是界面線程,如果你想在線程結束後得到它的確結果,那麼你可以調用:
  ::GetExitCodeThread函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章