標籤: 暫無標籤

CWinThread類是MFC用來封裝線程的,包括UI線程和工作者線程。因此每個MFC程序至少使用一個CWinThread派生類。被MFC程序員熟知的CWinApp應用類就從這裡派生。

  CWinThread類封裝了對線程的操作,一個CWinThread對象代表在應用程序中一個線程的執行。在MFC應用程序中,主執行線程是CWinThread派生類CWinApp的派生類對象。由CWinApp類派生的新類都是用戶界麵線程。


  1.成員變數


  CWinThread類的成員變數有以下5個:


  m_bAutoDelete:線程終止時是否自動銷毀。


  m_hTread:當前線程的句柄。


  m_nTreadID:當前線程的標識。


  m_pMainWnd:應用程序主窗口指針。


  m_pActiveWnd:激活窗口指針。


  2.成員函數


  CWinThread類的常用成員函數如下:


  調用CreateTread函數用於創建一個新線程,函數聲明如下:


  BOOL CreateTread


  {


  DWORD dwCreateFlags=0, //線程創建標誌


  UINT nStackSize=0, //線程堆棧大小


  LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL //線程的安全屬性


  };


  調用GetTreadPriority函數獲取線程的優先順序,函數聲明如下:


  int GetTreadPriority();


  線程的優先順序取值如下:


   THREAD_PRIORITY_TIME_CRITICAL:實時優先順序


  THREAD_PRIORITY_HIGHEST:比普通優先順序高兩個單位


  THREAD_PRIORITY_ABOVE_NORMAL:比普通優先順序高一個單位


  THREAD_PRIORITY_NORMAL:普通優先順序


  THREAD_PRIORITY_BELOW_NORMAL:比普通優先順序低一個單位


  THREAD_PRIORITY_LOWEST比普通優先順序低兩個單位


  THREAD_PRIORITY_IDLE:空閑優先順序


  調用SetThreadPriority函數用於設置線程的優先順序,函數聲明如下:


  BOOL SetThreadPriority(


  int nPriority; //優先順序


  );


  調用PostThreadMessage函數用於向另一個CWinThread對象發送信息,函數聲明如下:


  BOOL PostThreadMessage(


  UINT message, //用戶定義消息標識


  WPARAM wParam, //消息的第一個參數


  LPARAM lParam //消息的第二個參數


  );


  調用SuspendThread函數用於將線程的掛起計數加1,當線程的掛起計數大於0時,該線程將暫停執行,稱之為掛起狀態。函數聲明如下:


  DWORD SuspendThread();


  調用ResumeThread函數用於將生成的掛起計數減1,當線程的掛起計數減少到0時,恢複線程的執行。函數聲明如下:


  DWORD ResumeThread();


  3.重載函數


  CWinThread類的常用重載函數如下:


  重載InitInstance函數用與執行線程實例的初始化工作。函數聲明如下:


  virtual BOOL InitInstance();


  重載ExitInstance函數用於執行清理工作,函數聲明如下:


  virtual int ExitInstance();


  重載OnIdle函數用於執行線程空閑處理工作,函數聲明如下:


  virtual BOOL OnIdle(


  LONG ICount //計數器


  );

上一篇[C函數速查手冊]    下一篇 [CvSize]

相關評論

同義詞:暫無同義詞