MFC同步類

來源:互聯網
上載者:User

在多線程應用程式中,MFC同步類用來防止資料對象同時訪問。一個MFC應用程式可以同時運行多個線程。如果不止一個這樣的線程同時修改相同的資料對象且同時把該資料儲存到相同記憶體位址時,便有可能破壞該資料。在一個多線程應用程式中,四個M F C類用來同步。 CMutex 用來防止多個線程同時訪問同一資料對象。要啟用 CMutex ,先要把它添加到資料類的成員變數;接著構造另一個 MFC 類,即 CSingleLock ,對任何訪問這些成員變數的成員函數引用 CMutex ;然後調用 CSingleLock 的 Lock ( int timeout) 成員函數。如果別的線程已在訪問該資料,則 Lock ( ) 函數不返回,直到該線程調用 Unlock ( ) 或逾時時才返回。 CMultiLock 類允許指定多個 CMutex 對象,以便能同時服務多個訪問

CSemaphore 與CMutex類基本相同 , 但是 , 前者允許同時存在一個或多個同時發生的訪問 ; CCriticalSection 與CMutex類基本相同,但是,前者在堆棧中被構造,並有比CMutex 更快的速度; CEvent 基於任何事件 ( 不僅僅是被另一線程訪問 ) 對資料訪問進行同步 。 線程將一直等待,直到調用CEvent的SetEvent 和ResetEvent 成員函數允許它們繼續為止 。 ;

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.