IT認證考古題|IT認證題庫|IT認證考試信息 --Killtest考古題網

MFC學習筆記之多線程的應用

MFC學習筆記之多線程的應用

2010年10月6日 by admin

壹. 使用線程步驟:

  1. 定義線程函數傳遞參數結構

  如:

  typedef struct tagTHREADParmS

  {

  //CString content;

  HWND hwnd;

  int window;

  int state;

  Monitor *mm;

  int thread_id;

  }THREADParmS;

  2. 定義線程函數:

  如:

  UINT read(LPVOID pParam)

  {

  THREADPARMS *p=(THREADParmS*)pParam;

  HWND hwnd=p->hwnd;

  int edit=p->window;

  Monitor *mon=p->mm;

  mon->add_reader(p);

  SetDlgItemText(hwnd,p->state,”正在讀取”);

  Sleep(2000);

  char * str=new char[1000];

  GetDlgItemText(hwnd,IDC_DISPLAY,str,1000);

  SetDlgItemText(hwnd,edit,str);

  mon->complete_reader(p);

  SetDlgItemText(hwnd,p->state,”讀取完成”);

  delete p;

  return 0;

  }

  3. 啟動線程

  如:

  THREADPARMS *ptp=new THREADParmS;//初始化線程參數結構

  ptp->hwnd=m_hWnd;//對PTP結構賦值

  //ptp->content=str;

  ptp->mm=mm;

  ptp->window=window;

  ptp->thread_id=thead_id;

  ptp->state=state;

  AfxBeginThread(read,ptp);//啟動線程

  二. 線程的掛起和重啟

  1. 掛起線程

  SuspendThread(HANDLE);

  註意:線程暫停後便停止運行,也就是說線程可以自己掛起自己,但無法自己喚醒自己。

  2.喚醒線程

  ResumeThread(HANDLE);

  對於CWinThread 類,只要使用m_hThread成員,即為HANDLE變量。

  超級註意:GetCurrentThread()得到的是壹個當前的線程的handle,其實是壹個偽HANDLE,是當前所有運行的線程環境的HANDLE。無法直接使用此函數得到的handle喚醒線程。但是使用壹些其他函數後可以,我沒有嘗試。

  還有,MFC中的線程是不安全的。不安全的含義是:當兩個線程同時訪問同壹個臨界資源時,系統會允許。這就會產生壹些不可預知的錯誤。

  解決的方法時使用進程的同步類或者自己編寫代碼實現線程互斥訪問和同步。

Posted in: KillTest Tagged: MFC, 多線程, 學習筆記

分類

標籤

1z0-042 1Z0-851 1Z0-873 70-640 70-642 70-680 220-701 220-702 310-065 640-802 642-813 642-832 642-902 A+ Apple CCDA CCDP CCIE CCNA CCNP CCSP Cisco CIW COMPTIA DBA EMC EMC Certification HCSE HP IBM IBM Certification JAVA Java Standard Edition 6 Programmer Certified Professional Exam JN0-660 Linux LPI MCITP MCSE MCTS Microsoft Network+ Oracle SCJP Security+ SUN

Copyright © 2025 IT認證考古題|IT認證題庫|IT認證考試信息 --Killtest考古題網.

Custom WordPress Theme by themehall.com

  • Viasat Customer Agreement
  • Piercing Agreement Form
  • Isda Cds Agreement
  • Uk Egypt Association Agreement
  • Us New Zealand Trade Agreement
  • Simple Loan Contract between Family
  • What Is the Effect of Termination of a Contract
  • Lupc Framework Agreement
  • The Contractor Fight Reviews
  • Property Management Agreement in Kenya
  • Legal Definition Cancel a Contract
  • South Dakota Vehicle Purchase Agreement
  • Shared Equity Financing Agreement Pennsylvania
  • Sale Agreement Duration
  • Rental Agreement Registration Format
  • Quickpay Agreement Id
  • Investment Agreement Nigeria
  • Party Wall Agreement Details
  • 50 Shades of Grey Agreement Pdf
  • When Does a Cause of Action Accrue for Breach of Contract