到底差在了什麼地方:Cs->MUTEX->Monitor->WaitHandle

雖然我們整篇都在討論.NET下的Multi-threading的問題,但是實際上很多問題都是可以類推的。例如前幾次我們反覆的說道了關於CriticalSection的問題。說它比MUTEX有何優越之處,例如速度就是一個明顯的優勢。但是從留言中發現在這個問題上存在著一些誤會。今天不妨就閑扯一下這個問題。 首先說明一點,CriticalSection並不是100%生存在使用者態下。因此說其效率比MUTEX“高”是要有前提條件的。實際上,我們說,如果CriticalSection可以非常順利的一次性獲

少用 if 進行普通意義上的參數驗證

每次在寫 public 方法的時候第一件事就是參數驗證。以往,都會有這樣的代碼出現:if (oneOfTheArgument == null){ throw new ArgumentNullException( "oneOfTheArgument", StringTable.ErrorClassNameArgNull);}但是方法的參數表有的時候比較長,邏輯判斷的組合也比較多,此時這種語句的數目有時多大6-7個。這樣的代碼喧賓奪主,可讀性差(從純資料的角度而言,

Parallel Extensions CTP第二版發布

 Parallel Extensions CTP第二版發布LazyBee2008年6月微軟Parallel Extensions項目組發布了Parallel Extendsions CTP的第二個版本。這個版本主要包含以下組件:1 工作平行程式庫TPL(Task Parallel Library): 提供命令的方式將面向資料的操作以及輕量級的任務自動的運行在並行硬體上,以提高運行速度。2 PLINQ(Parallel LINQ)提供以聲明的方式對資料來源進行並行化的查詢3 調配的資料結構CDS(

VBA中簡單修改原有公式的宏

     最近搞CMMI,由於度量模板中很多都要用到公式,而且模板已經被一些試驗項目使用了,發現所有的公式都沒有限定小數點後面的位元,所以為了方便需要寫一個宏來修改原有公式,來增加限定原有公式結果的小數點後的位元,目前暫訂為保留小數點後三位,該宏比較簡單,大概就是下面這個樣子:Sub ChangeFormula()    Dim col As Integer    Dim row As Integer    For row = 4 To 4        For col = 10 To 65  

Xcode配置SVN作為版本控制

1 配置SVN   Max OS-Leopard目前內建SVN。如果不對SVN進行配置,即使在Xcode中配置了SCM,在Xcode中使用SVN也會有問題。1.1 開啟SVN的設定檔     ~/.subversion/config注意:如果”.subversion”目錄不存在,請運行”svn status”命令,雖然此命令會失敗,但是會為你建立所需要的檔案。 1.2 找到 global-ignores 一行,去掉注釋,編輯成     global-ignores = build *~.nib

如何修複.Net和COM之間枚舉名稱的問題(續)

     前面我們有一篇“如何修複.Net和COM之間枚舉名稱的問題”,按照那篇文章的方法做可以解決編譯問題,但是啟動並執行時候會出現run-time error “429” , ActiveX不能建立的問題,關鍵問題是因為.net程式集沒有註冊的原因造成的,需要通過regasm註冊一下就解決了。具體操作步驟是:    1 編寫您需要.net程式     2 使用以下批處理來匯出tlb檔案@echo Off set binDir="C:\Program Files\Microsoft

(翻譯)《Expert .NET 2.0 IL Assembler》 第二章 代碼加強 2.1 代碼壓縮

返回目錄 代碼壓縮     出現在前面章節的程式碼範例是壓縮的。如果你不相信我,進行一個簡單的實驗:用你喜歡的進階別Microsoft

圖解DotNet架構之七:Winform

 (聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查)             

log4Net與IBatisNet配合的設定檔

<?xml version="1.0" encoding="utf-8" ?><configuration>  <!-- This section contains the log4net configuration settings -->  <configSections>        <sectionGroup name="iBATIS">      <section name="logging"

大型網站架構演變和知識體系)

  (原文出處:http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html)    之前也有一些介紹大型網站架構演變的文章,例如LiveJournal的、ebay的,都是非常值得參考的,不過感覺他們講的更多的是每次演變的結果,而沒有很詳細的講為什麼需要做這樣的演變,再加上近來感覺有不少同學都很難明白為什麼一個網站需要那麼複雜的技術,於是有了寫這篇文章的想法,在這篇文章中

COM(VB/VBA/Script)利用服務標記調用WCF服務之三使用WSDL契約

COM(VB/VBA/Script)利用服務標記調用WCF服務之三使用WSDL契約LazyBee(http://lazybee.cnblogs.com)前面我們介紹了使用MEX契約的服務標記在COM中調用WCF服務,這種方式是通過MEX終結點動態取得中繼資料,使用起來是比較方便;但是有時服務的中繼資料中可能包含惡意使用者可以利用的關於應用程式的敏感資訊,也就是說為了安全考慮有些服務可能不會通過MEX公布中繼資料資訊。如果哦某些服務沒有公布中繼資料資訊,用類型化有比較麻煩,針對這種情況我們該如何在

FCL(3):: ArrayList & List (1)

ArrayList是以前最常用的一個Collection. <<.net設計規範>>第八章一條:  要優先使用集合,而不是優先使用數組. 因ArrayList比Array好用多了:)記得以前面試的時候主考官問我用過ArrayList沒,答:用過;

WinInet 與 winHTTP 共同在代碼檔案中引用會引起編譯錯誤

問題:      WinInet 與 WinHTTP 同為Windows 平台下訪問互連網的API組。WinInet 技術比較老,已經有十餘年歷史了,在某些方面並不完全勝任訪問Internet的工作。於是後來有了winHTTP APIs。 或許是微軟考慮到winHTTP技術可以全面替代WinInet訪問,所以某些結構體、宏被winHTTP.h 檔案進行了重定義。當一個代碼檔案(.cpp 或.inl) 同時包含WinInet.h 和 winHTTP.h 檔案時,將引起編譯錯誤。解決:    

IE Plug-In (2) – Ole Drag

 再次碰到ClipBoard的問題,我記得上次碰到是在做工作流程編輯軟體的時候,要拷貝一個 自己寫的控制項的資訊到剪貼簿,然後粘帖的時候重新構建該控制項。 具體的代碼回家要翻箱子底了。不過從網上看到了 藍色的天空的系列文章(他好像也是轉的,哈哈!)。剛剛看了個開頭。學習中.......OLE Drap/Drop(1) http://blog.csdn.net/lyl_98/archive/2007/02/09/1506519.aspxOLE

談談多線程編程(一)- 安全性策略

文章目錄 滿足對象的一致性約束的兩類策略

閉包解析(Fun with closure)

我發現英文標題真的非常不給力。這篇隨筆是對“閉包”這個東西的簡單介紹。為了輕鬆一些,用了Fun with closure這個標題。有點兒像閉包的東西我先找了幾個有點兒像閉包的東西。擺出來看看。第一個東西是C++的Functor: 1 struct add_x { 2 add_x(int x) : m_x(x) { } 3 int operator() (int y) { return m_x + y; } 4   5 private: 6 int m_x; 7 }; 8

用Axis開發Webservice

Axis是Apache的一個開源web service引擎。它目前最為成熟的開源web service引擎之一。下面我主要介紹一下如何使用該Axis開發您的web service 服務。1.安裝以tomcat4.1為伺服器,下面說明如何安裝axis:   1.解壓下載後的包,將包中axis目錄複寫到tomcat目錄下的webapps目錄下;   2.將axis/WEB-INF/lib目錄下類檔案複製到tomcat目錄下的common/lib目錄下;   3.重新啟動tomcat;   4.訪問h

Delphi:對某些環境變數的檢測

有日子沒有都有動Delphi了,安裝了Delphi2007 For Win32 做了一個安裝程式的東東。主要部分就是檢測系統內容的變數。   1. 作業系統的檢測   2. WindowsInstaller版本的檢測 (要求最低配置3.1)   3. .Net FrameWork 版本的檢測 (最低配置2.0)   4. Office ACE Oledb驅動程式的檢測。 代碼共用如下:  1.作業系統檢測。 function GetOSVersion: string;var  OSVer :

WCF Data Contract之契約等價

 WCF Data Contract之契約等價LazyBee       用戶端和服務之間要能夠進行成功的通訊,並不一定要求通訊的雙方都具有相同的類型,只需要通訊雙方的類型具有等價的資料契約就可以了。如果Data Contract滿足以下條件,我們說它們是等價的:     1

(翻譯)《Expert .NET 2.0 IL Assembler》 第五章 中繼資料表的組織 5.4 中繼資料和驗證

返回目錄 中繼資料和驗證然而,這個“好的暗示”,僅僅是一個暗示。在前述的部分提供了關於你可以從一個列的確定的類型引用哪些表的資訊。這並不意味著你應該引用所有你能夠引用的表。在表5-10中列出的一些群組的符號類型比在CLR現有的發布版本中實際上可接受的要更加廣闊。例如,MemberRefParent群組,描述了能夠包含MemberRef記錄的父層級的表,包括TypeDef表。但是這個中繼資料發佈API不會接受TypeDef符號作為MemberRef的父層級符號;並且即使這樣的中繼資料不知何故還是發

總頁數: 61357 1 .... 9500 9501 9502 9503 9504 .... 61357 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.