亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1315523201.txt

?? c++ builder 的一些txt文檔
?? TXT
字號:

化境編程界-
MFC中多線程的應用(1)
 
 
  
  化境編程界首頁| 化境軟件庫 | 化境教程庫 | 其它資源 | 化境討論區
| 化境留言板
 
 
  
  
   
showTop();
  
 
 
  歡迎訪問《化境編程界》| * Email:5xsoft@21cn.com | < 留言板
 
  化境編程界 ->  技術文章 ->  C/C++/VC    
MFC中多線程的應用(1)
 [ 作者: jazzrabbit
  添加時間: 2001-5-13 15:57:10
 ]
 
   來源:天極論壇
  試著用自已的話來表述線程的概念,還有很短時間里編的一個小示例程序(不知恰當不?,也不知能說得清不..),見笑了.
   線程其實和標準的windows主程序(WinMain)沒啥兩樣...主程序其實是一個特殊的線程,稱為主線程而已,其實你完全可以把線程想象成和winmain一起**同時運行**,但是** 可以相互訪問(即在一個地址空間) **的一些小的WinMain程序.它和主線程一樣,里面可以創建窗口,獲取消息,等等..
   由于線程們在一個地址空間且同時運行,所以會造成一些麻煩。因為我們編程都要用別人的函數庫,而他們的函數庫里面往往會有很多靜態或全局的狀態或中間變量,有著很復雜的相互依賴關系,如果執行某個功能不串行化(所謂串行化,也就是只能等一個功能調用返回后,另一個線程才能調用,不可以同時調用),就會造成大亂.這對線程來說,有術語稱同步,windows為我們提供了很多同步的方法,MFC也提供了一些同步核心對象的類封裝.對于某個功能調用庫來說,叫線程安全.比如MFC的類庫并不是線程安全的. 
   現在我舉個剛剛自編的例子來簡單說明這些概念。下面的一個對話框應用是多線程的.演示兩個小動畫:
  (1)第一個動畫由主線程的Timer來驅動,第二個動畫由主線所創建的工作線程來驅動.分別顯示在不同的位置.之所以我要加入Timer,也是為了形成線程驅動和timer驅動的對照,這是動畫的兩種驅動方式(還有在idle中驅動的)。
  (2)這兩個動畫永遠是不同的.也就是比如:一個是變哭,一個就會變笑,等那個變笑了,這個就變哭.動畫圖片來自于OICQ中的Face目錄下,一般同樣的頭像會oicq會帶三個圖片(*-1.bmp,*-2.bmp,*-3.bmp),*-2.bmp是變灰的圖片,我就取了1和3的圖片來作動畫.
   這個程序的幾個關鍵要注意的:
  (1)主線程用PostThreadMessage和工作線程通信.工作線程用PeekMessage來取回消息。為了簡單起見,我只用了一個WM_QUIT的消息來指示工作線程退出.
  (2)主線程和工作線程同時調用了一個DisplayFace函數來進行動畫顯示.為了讓兩個動畫一哭一笑做到不同,采用了CCriticalSection來進行同步.
  
  示例如下:
  (1)先用appwizards生成一個MFC的Dialog應用模板,假定對話框類為CTest01Dlg。
  (2)再添入兩個oicq的bmp文件到資源中去
  (3)添加一個按鈕(button)到對話框上.用作啟動、停止動畫的button
  (4)用ClassWizard為button/onclick及dlg/ontimer生成事件響應函數,
  (5)用Resource Symbol加入一個標識定義IDC_TIMER1
  (6)在ClassView中為CTest01Dlg加入以下成員變量和成員函數
    CriticalSection ccs;
    CBitmap bm[2];
    CWinThread* pMyThread;
    static UINT MyThreadProc( LPVOID pParam);
    void DisplayFace(CPoint r);
    實現文件中加入相應代碼(見下面)
  (7)stdafx.h中加入#include 
  源代碼如下,凡是我新加的代碼周圍都有注釋包圍,其它是ClassWizards自動寫的:
  // stdafx.h : include file for standard system include files,
  // or project specific include files that are used frequently, but
  // are changed infrequently
  file://
   #if !defined(AFX_STDAFX_H__5B92DAA8_FE27_4702_8037_A2538343E69D__INCLUDED_)
   #define AFX_STDAFX_H__5B92DAA8_FE27_4702_8037_A2538343E69D__INCLUDED_
  #if _MSC_VER > 1000
  #pragma once
  #endif // _MSC_VER > 1000
  #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
  #include // MFC core and standard components
  #include // MFC extensions
  #include // MFC support for Internet Explorer 4 Common Controls
  file://加入頭引用主要是CCriticalSection對象的定義.
  #include 
  file://加入結束
  #ifndef _AFX_NO_AFXCMN_SUPPORT
  #include // MFC support for Windows Common Controls
  #endif // _AFX_NO_AFXCMN_SUPPORT
  file://{{AFX_INSERT_LOCATION}}
  // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  #endif // !defined(AFX_STDAFX_H__5B92DAA8_FE27_4702_8037_A2538343E69D__INCLUDED_)
  // test01Dlg.h : header file
  file://
  #if !defined(AFX_TEST01DLG_H__F3780E23_CCFC_468C_A262_50FFF1D991BC__INCLUDED_)
  #define AFX_TEST01DLG_H__F3780E23_CCFC_468C_A262_50FFF1D991BC__INCLUDED_
  #if _MSC_VER > 1000
  #pragma once
  #endif // _MSC_VER > 1000
  /////////////////////////////////////////////////////////////////////////////
  // CTest01Dlg dialog
  class CTest01Dlg : public CDialog
  {
   // Construction
   public:
   file://加入
   CBitmap bm[2];
   CCriticalSection ccs;
   CWinThread* pMyThread;
   static UINT MyThreadProc( LPVOID pParam);
   void DisplayFace(CPoint r);
   CTest01Dlg(CWnd* pParent = NULL); // standard constructor
   file://加入結束
   // Dialog Data
   file://{{AFX_DATA(CTest01Dlg)
   enum { IDD = IDD_TEST01_DIALOG };
   // NOTE: the ClassWizard will add data members here
   file://}}AFX_DATA
   // ClassWizard generated virtual function overrides
   file://{{AFX_VIRTUAL(CTest01Dlg)
   protected:
   virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
   file://}}AFX_VIRTUAL
   // Implementation
   protected:
    HICON m_hIcon;
    // Generated message map functions
    file://{{AFX_MSG(CTest01Dlg)
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
   
   
  
   下一頁 8
 相關內容:
 
- Java 程序中的多線程
- 討論: windows程序設計方式爭論
- ATL和MFC來,應該使用哪個?
- 初始化類成員和在你的MFC應用中加入位置欄
- 利用MFC的CFileDialog生成Windows2000文件對話框
 
showBottom();
申明: 本站
 所有內容均是從網上收集,若有侵范你版權的請指出,本站馬上刪除。
 © Copyright By 稻香老農 2000.3 - Now | 站務聯系: 5xsoft@21cn.com | OICQ:593737 (只用于站務聯系,不做它用)
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

国产女人aaa级久久久级| 精品国产凹凸成av人导航| 男女男精品视频| 亚洲国产成人午夜在线一区| 欧美性猛交xxxx黑人交| 国产在线国偷精品免费看| 一区二区在线看| 国产欧美精品日韩区二区麻豆天美| 欧美三电影在线| 成人av电影观看| 麻豆国产精品官网| 亚洲一区在线电影| 欧美国产在线观看| 欧美成人伊人久久综合网| 在线免费观看不卡av| av电影在线观看完整版一区二区| 九九在线精品视频| 日韩中文字幕一区二区三区| 亚洲精品国产高清久久伦理二区| 中文字幕在线一区| 久久影院午夜片一区| 在线成人午夜影院| 欧美中文一区二区三区| 色综合欧美在线视频区| 99久久久久久| voyeur盗摄精品| 成人精品免费网站| 国产成人精品1024| 国产原创一区二区三区| 免费在线观看一区二区三区| 亚洲bt欧美bt精品777| 一区二区免费看| 一区二区三区高清在线| 自拍偷拍国产亚洲| 国产精品久久久久久久久免费樱桃| 26uuu亚洲| 久久久久久久久伊人| 久久久综合激的五月天| 久久久午夜电影| 国产亚洲精品aa| 国产午夜亚洲精品羞羞网站| 国产亚洲精品福利| 欧美国产精品专区| 国产精品私人影院| 国产精品成人免费| 亚洲青青青在线视频| 亚洲黄网站在线观看| 亚洲伊人色欲综合网| 亚洲电影中文字幕在线观看| 日本亚洲视频在线| 九九视频精品免费| 国产999精品久久久久久绿帽| 成人免费毛片片v| 99久久精品国产网站| 色激情天天射综合网| 欧美亚洲一区二区在线观看| 在线播放亚洲一区| 精品理论电影在线| 日本一区二区免费在线观看视频| 中文字幕一区二区三区不卡在线| 亚洲日本一区二区| 午夜视频一区在线观看| 精品一区二区三区影院在线午夜| 国产成人av自拍| 99re8在线精品视频免费播放| 欧美自拍偷拍午夜视频| 欧美一区二区在线视频| 精品久久99ma| 亚洲欧美一区二区视频| 亚洲成人激情自拍| 国产综合色在线| 色域天天综合网| 日韩午夜激情视频| 国产精品日韩成人| 亚洲一区二区偷拍精品| 久久电影网站中文字幕| 播五月开心婷婷综合| 欧美视频一区二区三区四区| 精品国产乱码久久久久久夜甘婷婷 | 日本大香伊一区二区三区| 欧美日韩国产一区二区三区地区| 久久网站最新地址| 国产精品短视频| 人人狠狠综合久久亚洲| 成人亚洲一区二区一| 欧美日韩免费观看一区二区三区| 久久麻豆一区二区| 午夜私人影院久久久久| 国产精品中文有码| 欧美亚洲另类激情小说| 久久精品一区四区| 无码av中文一区二区三区桃花岛| 国产成人精品三级麻豆| 欧美电影在哪看比较好| 中文字幕va一区二区三区| 日韩综合小视频| 91视频com| 国产午夜一区二区三区| 日韩黄色免费电影| 91免费国产在线观看| 久久久噜噜噜久久人人看| 五月婷婷色综合| 91丨九色porny丨蝌蚪| 精品国产成人系列| 午夜精品久久久久久| 一本色道久久综合狠狠躁的推荐 | 欧美视频完全免费看| 久久精品夜夜夜夜久久| 日日摸夜夜添夜夜添精品视频| 波多野结衣中文字幕一区 | 波多野结衣91| 精品国产成人在线影院| 视频一区中文字幕| 色婷婷久久一区二区三区麻豆| 国产无遮挡一区二区三区毛片日本| 五月天欧美精品| 欧洲视频一区二区| 亚洲图片你懂的| 成人免费va视频| 久久毛片高清国产| 久久99精品视频| 欧美一区二区三区在线视频| 亚洲一区在线播放| 91网址在线看| 自拍偷拍亚洲欧美日韩| 成人的网站免费观看| 国产日韩欧美制服另类| 国产在线播放一区| 久久久久国产精品麻豆| 激情丁香综合五月| 欧美成人福利视频| 美日韩黄色大片| 亚洲精品一区二区三区精华液| 男女男精品视频网| 日韩美一区二区三区| 久久成人麻豆午夜电影| 欧美大片一区二区| 精品一区二区日韩| 2022国产精品视频| 国产一区二区三区精品欧美日韩一区二区三区 | 精品福利二区三区| 美女www一区二区| 国产ts人妖一区二区| 久久久亚洲精品一区二区三区 | 自拍av一区二区三区| 在线视频欧美区| 国产麻豆欧美日韩一区| 亚洲女爱视频在线| 日韩精品中午字幕| 欧美午夜一区二区三区免费大片| 国产一区二区精品久久91| 欧美性猛交xxxx黑人交| 亚洲欧美一区二区在线观看| 97se亚洲国产综合自在线不卡| 亚洲男帅同性gay1069| 色狠狠综合天天综合综合| 亚洲成人午夜影院| 日韩午夜电影在线观看| 国产一区二区看久久| 中文字幕一区二区三区精华液 | 日韩欧美另类在线| 黄色日韩三级电影| 国产精品水嫩水嫩| 在线观看视频一区| 日本aⅴ免费视频一区二区三区| 久久中文字幕电影| av在线播放不卡| 亚洲成a人片综合在线| 日韩欧美视频在线| 成人午夜免费视频| 亚洲成av人片在线观看| www国产亚洲精品久久麻豆| 99九九99九九九视频精品| 香蕉加勒比综合久久| 精品久久一区二区三区| 成人久久久精品乱码一区二区三区| 亚洲一区在线观看免费观看电影高清| 欧美疯狂性受xxxxx喷水图片| 久久爱www久久做| 亚洲黄色尤物视频| 欧美第一区第二区| 91丨九色丨尤物| 九色|91porny| 亚洲国产精品欧美一二99| 精品福利一二区| 欧美日韩国产色站一区二区三区| 国产精品影视在线| 亚洲自拍另类综合| 久久久综合精品| 在线观看日韩毛片| 久久国产精品99久久久久久老狼| 亚洲人成网站色在线观看| 日韩欧美国产电影| 91视频免费看| 国产资源精品在线观看| 亚洲一区二区三区国产| 中文字幕电影一区| 日韩一级高清毛片| 欧美自拍偷拍午夜视频| 大白屁股一区二区视频|