程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> Windows 95多線程間同步事件的控制方法

Windows 95多線程間同步事件的控制方法

編輯:vc教程

摘要:在Windows 95中所有的應用程序實際上都以是線程的方式運行的。在設計多線程應用程序中有時必須在線程之間保持一定的同步關系,才能使用戶能夠對獨立運行的線程進行有效的控制。為此本文在簡要介紹Windows 95中線程的概念及其創建方法後,提出了一種在多線程之間利用 event對象實現事件同步的控制方法。最後還介紹了在不同應用程序之間進行同步事件控制的方法,這種方法使得不同應用程序進行相互間的同步事件控制變得很簡單。

關鍵詞:Windows95 線程

同步事件 event

對象 Win32

一, 引言

Windows 95是一個多任務、多線程的操作,其中的每一個應用程序都是一個進程(process)。進程可以創建多個並發的線程(thread),同時進程也以主線程(primarythread)的形式被系統調度。所謂的線程是系統調度的一個基本單位, 在程序中線程是以函數的形式出現的,它的代碼是進程代碼的一部分,並與進程及其派生的其它線程共享進程的全局變量和文件打開表等公用信息。主線程類似於UNIX系統中的父進程,線程則類似於子進程。主線程也是一個線程,稱作主線程僅僅是為了和它創建的線程區別開來。每個線程都相對於主線程而獨立運行,為了使得線程能對用戶的控制作出響應,必須控制線程的運行,比如用戶可暫停、終止一個線程的運行或改變線程運行的條件等。而且在用戶控制與線程運行之間有時應該有一定的同步控制關系,以保證用戶對線程的有效控制。線程可以根據不同的條件對用戶的控制作出不同的響應。為了實現上述目的必須使用系統提供的同步對象(Synchronization Object),如event對象。 編寫多線程應用程序必須使用Win32 API。

二, 線程的創建方法

調用Win32 API中的CreateThread函數創建線程。hThread=CreateThread(NULL,0,&TEventWindow::ThreadFunc,this,0,&hThreadId);第一個參數設定線程的安全屬性,因其僅用於Windows NT,故不設定。第二個參數為0指定線程使用缺省的堆棧大小。第三個參數指定線程函數,線程即從該函數的入口處開始運行,函數返回時就意味著線程終止運行。第四個參數為線程函數的參數,可以是指向任意數據類型的指針。第五個參數設定線程的生成標志。hThreadId存放線程的標識號。線程函數如下定義,上述的 this參數是指向線程所屬窗口的句柄指針,通過thrdWin參數傳送過來,利用這個指針再調用相應的LoopFunc函數,線程的具體事務都在這個函數中執行。

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