windows的線程互斥和同步

這幾天的調查終於明白了,互斥和同步並不是一個概念。互斥是為了防止多個線程訪問同一個對象,造成對象狀態不一致。同步是為了控制各個線程執行的順序的。windows提供了下面幾個機制來實現互斥和同步:臨界區(critical session),互斥(mutex),事件(event),號誌(semaphore)。其中,臨界區只能在同一個進程之中使用,所以它的效果很高。而其它三個對象屬於windows核心對象,可以跨進程使用。使用critical

項目中碰見的錯誤(五)Log4Net在Windows服務中不能記錄日誌

今天在做windows服務的調試時,需要使用Log4Net記錄一些記錄檔。但是在啟動並執行過程中卻發現,Log4Net不能記錄。Log4Net配置請參見 http://blog.csdn.net/cpcpc/article/details/7189953解決方案:在Windows安裝服務的“serviceProcessInstaller1”中修改Account屬性為LocalSystem。見 後來查了一下這個Account屬性說白了還是許可權的問題。以下來自MSDN:public enum

Windows XP Embedded 入門

概述 對於一種開發工具的學習,最重要也最困難的階段就是概念的建立,只要建立了正確的概念,明白整個系統的體繫結構和各種工具作用,剩下的工作就是實際操作,積累經驗了,最多不過在需要的時候查一查手冊。 本文通過指導讀者進行實際操作,一步步地完成一次完整的開發工作,從而協助讀者建立一個清晰明確的概念。 因為我們開發的產品不是普通的軟體,而是專用的作業系統,所以需要針對某個特定的硬體平台(目標機)來進行開發;首先需要一個強大的工作站來運行開

Windows 2000核心模式驅動程式設計

文章來源:重慶郵電學院學報裝置驅動程式是直接同硬體打交道的軟體模組。在Windows 2000中,微軟公司在Windows NT4.0的驅動程式結構基礎上,同時引入了Windows9X的即插即入特性,推出了新的驅動程式結構模式(WDM)。WDM通過提供一種靈活的方式來簡化驅動程式的開發,在實現對新硬體支援的基礎上減少並降低所必須開發的驅動程式的數量和複雜性。在Windows

解開 Windows 下的臨界區中的代碼死結【轉自MSDN】

解開 Windows 下的臨界區中的代碼死結發布日期: 1/13/2005 | 更新日期: 1/13/2005Matt Pietrek和 Russ Osterlund本文假定您熟悉 Win32、C++ 和多執行緒。下載本文的代碼:CriticalSections.exe (415KB) 摘要臨界區是一種防止多個線程同時執行一個特定代碼節的機制,這一主題並沒有引起太多關注,因而人們未能對其深刻理解。在需要跟蹤代碼中的多執行緒的效能時,對 Windows 中臨界區的深刻理解非常有用。

Windows CE和Windows XP Embedded比較

微軟公司推出了兩款嵌入式作業系統Windows CE和Windows XP Embedded。兩款作業系統都可以在嵌入式系統中使用。但是,該如何確定哪一款更適合您的裝置呢?    乍一看,Windows CE和Windows XP Embedded似乎並無區別。兩個系統都屬於組件化作業系統,均配備相似的程式介面(Win32、MFC、ATL以及對.NET應用的支援),採用相似 作業系統技術,均支援網路、互連網瀏覽器、媒體播放器等等。如果瞭解每款作業系統的設計目標,選擇時就會更容易。    

讀 《Windows程式設計》(2)

 “簡單地說,Unicode擴充自ASCII字元集。在嚴格的ASCII中,每個字元用7位表示,或者電腦上普遍使用的每字元有8位寬;而Unicode使用全16位字元集。這使得Unicode能夠表示世界上所有的書寫語言中可能用於電腦通訊的字元、表意字元和其它符號。”“Unicode影響到了電腦工業的每個部分,但也許會對作業系統和程式設計語言的影響最大。從這方面來看,我們已經上路了。Windows NT從底層支援Unicode(不幸的是,Windows

讀 《Windows程式設計》(3)

 “進行Windows程式設計,實際上是在進行一種對象導向的程式設計(OOP)。這一點在Windows中使用得最多的對象上表現最為明顯。” “作為對象,使用者會在螢幕上看到這些視窗,並通過鍵盤和滑鼠直接與它們進行互動操作。更有趣的是,程式寫作者的觀點與使用者的觀點極其類似。視窗以「訊息」的形式接收視窗的輸入,視窗也用訊息與其它視窗通訊。對訊息的理解將是學習如何寫作Windows程式所必須越過的障礙之一。”“所謂「Windows給程式發送訊息」,是指Windows呼叫程式中的一個函數,該函數的參數

讀 《Windows程式設計》(4)

“在HELLOWIN中,WinMain只包含了註冊視窗類別別,建立視窗,從訊息佇列中取出訊息和發送訊息所必須的程式碼。” “程式的所有實際動作均在視窗訊息處理常式中發生。在HELLOWIN中,這些動作不多,WndProc只是簡單地播放了一個音效檔並在視窗中顯示一個字串。”“Windows程式所作的一切,都是響應發送給視窗訊息處理常式的訊息。這是概念上的主要痛點之一,在開始寫作Windows程式之前,必須先搞清楚。”“Windows 98和Windows

讀 《Windows程式設計》(5)

“儘管Windows為顯示圖形提供了強大的圖形裝置介面(GDI)函數,但在這一章中,我只介紹簡單文字行的顯示。我也將忽略Windows能夠使用的不同字型外形及字型大小,僅使用Windows的內定系統字型。這看起來似乎是一種限制,其實不然,本章涉及和解決的問題適用於所有Windows程式設計。在混合顯示文字和圖形時,Windows內定字型的字元大小通常決定了圖形的尺寸。” “在文字模式環境下,程式可以在顯示器的任意部分輸出,程式輸出到螢幕上的內容會停留在原處,不會神秘地消失。因此,程式可以丟掉重建

讀 《Windows程式設計》(6)

“圖形裝置介面(GDI:Graphics Device Interface)是Windows的子系統,它負責在視訊顯示器和印表機上顯示圖形。正如您所認為的那樣,GDI是Windows非常重要的部分。不只您為Windows編寫的應用系統在顯示視覺資訊時使用GDI,就連Windows本身也使用GDI來顯示使用者介面對象,諸如菜單、捲軸、表徵圖和滑鼠游標。” “從程式寫作者的觀點來看,GDI由幾百個函數呼叫和一些相關的資料型態、宏和結構組成。”“Windows 98和Microsoft

讀 《Windows程式設計》(1)

摘錄:“您也許發現,例如,使用Visual

教你啟動Windows 7效能監控器 跟蹤資料

可以使用 Windows 效能監控器即時檢查運行程式影響電腦效能的方式並通過收集日誌資料供以後分析使用。   對於平時在測試過程中,經常需要查看“效能監控器”中的資料,現在教大家開啟“效能監控器”的方法:   1、開始-運行(或者按Win+R鍵開啟運行對話方塊)   2、輸入“perfmon”, 然後斷行符號就可以進入“效能監控器”,  Windows

Open Source Vbootkit 2.0 Attack Tool for Windows 7

 http://www.findmysoft.com/news/Open-Source-Vbootkit-2-0-Attack-Tool-for-Windows-7/Windows 7 Release Candidate is now out and available for public download, and so is the open source attack tool Vbootkit 2.0 created by security researchers Vipin

TfxSleep,一個可以在等待逾時期間處理Windows訊息的函數,防止卡死

在進行Windows編程時,經常需要使用Sleep()這個Windows標準API函數來實現延時等待。但該線程的最大問題在於,調用了Sleep後,整個線程全部被掛起。也不能處理Windows訊息。TfxSleep解決該問題。實現卡住等待逾時的同時,可以處理Windows訊息。 // 延時 ?時間, 期間能處理Windows事件VOID  TfxSleep(ULONG ulMilliSeconds){    DWORD lFirst = GetTickCount();    MSG msg;   

如何防範非法使用者侵入Windows 2000/XP系統

第一招:螢幕保護裝置  在Windows中啟用了螢幕保護裝置之後,只要我們離開電腦(或者不操作電腦)的時間達到預設的時間,系統就會自動啟動螢幕保護裝置程式,而當使用者移動滑鼠或敲擊鍵盤想返回正常工作狀態時,系統就會開啟一個密碼確認框,只有輸入正確的密碼之後才能返回系統,不知道密碼的使用者將無法進入工作狀態,從而保護了資料的安全。  提示:部分設計不完善的螢幕保護裝置程式沒有屏蔽系統的“Ctrl+Alt+Del”的按鍵組合,因此需要設定完成之後測試一下程式是否存在這個重大Bug。  不過,螢幕保護

Windows Mobile 6開發環境配置

1、安裝Visual Studio 2005(Express版本不支援智慧型裝置開發) 2、安裝Visual Studio 2005 的 SP1 補丁 3、安裝ActiveSync版本4.5:http://download.microsoft.com/download/7/e/c/7ecbd388-7fb5-4e3e-b57f-12eaf7eb6136/setup.msi 4、安裝Windows Mobile 6.0 Professional

遊戲開發新手入門之Windows編程

簡介  本文目的是介紹Windows編程基礎。在本文結束時,你應該能夠很好的工作了,雖然可能是簡單的WIindows程式。你需要有C語言的基礎知識,我很少將C++的代碼擴充到程式中。當然,由於Windows本身就是物件導向的,一點類的知識是不會對你有什麼損害的。如果你不熟悉C++,沒有關係,我想你還是能從我這裡學到大部分的東西。所有的程式碼都通過了Microsoft Visual

Windows 2000 下通過訪問物理地址取主機唯一資訊

Windows 2000 下通過訪問物理地址取主機唯一資訊 Author: sinisterEmail: sinister@whitecell.orgHomepage:http://www.whitecell.org 在9x下取得主版序號非常簡單,但此方法在NT/2K下行不通。還好NT/2K下 提供了 /Device/PhysicalMemory 裝置,通過它可以得到物理地址。在9x下 通過訪問地址 FEC71H 可以得到主板序號。NT/2K下雖不保證是主板序號,

用VC++實現Windows 2000/XP下的休眠

 實現休眠功能很簡單,只要在任意想要執行的地方執行如下給出的休眠函數SetPower()就行,其實休眠很簡單,只需要API:SetSystemPowerState()就行,就如關機/登出/重啟一樣,只需要ExitWindowEx(),但這些API可以直接用在98下,卻不能用在2000/XP中,因為這裡牽涉到了使用者權限,沒有許可權是不能進行這些操作的,所以,首先要取得許可權,下面給出代碼:  #define RTN_ERROR 13  void PERR(LPTSTR szAPI, DWORD

總頁數: 1345 1 .... 401 402 403 404 405 .... 1345 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.