淺嘗DesignPattern_Prototype

UML:Sample:Prototype  ()declares an interface for cloning itself 定義複製對象的介面ConcretePrototype  ()implements an operation for cloning itself 實現複製自己的操作Client  () creates a new object by asking a prototype to clone

CLR_via_C#.3rd 翻譯[1.4.2 不安全的程式碼]

1.4.2 Unsafe Code 不安全的程式碼 通常情況下,微軟的C#編譯器產生的都是安全的程式碼。“安全的程式碼”就是經過驗證的安全的代碼。然而,微軟C#編譯器也允許開發人員編寫不安全的代碼。不安全的程式碼可以直接在記憶體位址上工作,並且可以操作這些地址上的位元組(bytes)。這是一個非常強大的功能,在你要與Unmanaged

委託.事件.Lambda(2)

在C#中,一個類可以有域(Fields)、屬性(Properties)、方法(Methods)、索引(Indexs)、事件(Events)等成員,其中事件(Events)成員就是用來聲明一個類事件的。在類中聲明一個事件成員一般採用如下的文法形式:public event 代表名 事件名。1.一個簡單的委託 delegate int DelegateOperation(int i1, int i2);static void Main(string[] args) {

淺嘗DesignPattern_Template

UML:AbstractClass  ()defines abstract primitive operations that concrete subclasses define to implement steps of an algorithm 定義一個抽象的原始操作,來使子類實現演算法步驟implements a template method defining the skeleton of an algorithm. The template method calls

Process類–MSDN轉載

Process 組件提供對正在電腦上啟動並執行進程的訪問。用最簡短的話來說,進程就是當前啟動並執行應用程式。線程是作業系統向其分配處理器時間的基本單位。線程可執行進程的任何一部分代碼,包括當前由另一線程執行的部分。對於啟動、停止、控制和監視應用程式等任務,Process 組件是很有用的工具。使用 Process 組件,可以擷取正在啟動並執行進程的列表,或者可以啟動新的進程。Process 組件用於訪問系統進程。初始化 Process 組件後,可使用該組件來擷取有關當前啟動並執行進程的資訊。此類資

CLR_via_C#.3rd 翻譯[1.5 本地代碼產生工具NGen.exe]

1.5 The Native Code Generator Tool: NGen.exe 本地代碼產生工具NGen.exe NGen.exe是和.NET架構綁定在一起的。當使用者的機器上安裝了一個應用程式,NGen.exe將會把IL代碼編譯成機器碼。因為代碼是在安裝的時候編譯的,CLR的JIT編譯器不需要在運行時編譯IL代碼,而且這回提高應用程式的效能。 下面是NGen.exe使用的兩個情景  ■ 提高應用程式的啟動時間  運行NGen.exe能夠提高啟動時間,是因為在運行時之前代碼已經被編譯成

CLR_via_C#.3rd 翻譯[25.2 線程開銷 ]

25.2 Thread Overhead . 線程開銷  線程是非常強大的,因為它允許windows 即使在“應用程式執行一個長時間啟動並執行任務”情況下也能及時響應。另外,線程允許使用者使用一個應用程式(比如“工作管理員”) 強制終止一個似乎已經凍結的應用程式。但是,和一切虛擬化機制一樣,線程會有空間(記憶體消耗)和時間(運行時的執行效能)上的消耗。下面我們來更詳細的探討這種消耗,每個線程中,下面這些東西線程都具備:   ■ 線程核心對象(Thread kernel object)

CLR_via_C#.3rd 翻譯[1.6 架構類庫]

1.6 The Framework Class Library 架構類庫 .NET架構類庫包括.NET架構類庫(Framework Class Library,簡稱FCL)程式集。FCL是一個包含幾千個類型的定義,每一個類型都提供了某種功能的DLL集。微軟打算添加更多的類庫,比如Windows SideShow Managed API SDK 和 DirectX SDK。這些新增的類庫提供更多的類型,更多的功能給你用。 下面是一些允許開發人員使用的程式集,可以用來建立各種應用程式:  ■ Web

wcf學習筆記_2(修改wcf設定檔)

修改用戶端設定檔:在用戶端的設定檔中添加<appSettings>,方便擷取更改.Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> /// <summary>/// 更改設定檔/// </summary>/// <param name="serverIp"></param>

CLR_via_C#.3rd 翻譯[25.7 使用專用線程執行非同步計算限制操作]

25.7 Using a Dedicated Thread to Perform an Asynchronous Compute-Bound Operation 使用專用線程執行非同步計算限制操作 本節將展示如何建立一個線程,並讓它執行一次非同步計算限制(asynchronous compute-bound)操作。雖然會教你具體如何做,但強烈建議你避免採用這裡展示的技術。相反,應該盡量使用CLR的線程池來執行非同步計算限制操作,這方面的詳情將在第26章“計算限制的非同步作業”討論。 在某些情況下

CLR_via_C#.3rd 翻譯[25.3 停止瘋狂 ]

25.3 Stop the Madness 停止瘋狂 如果非常在意原始效能,那個一台機器上最好的線程數就是這台機子上CPU的數量。所以,單核的機子就只有一個線程,雙核的機子兩個線程,以此類推。原因很明顯:如果你的線程比CPU的數量多,那麼環境切換就會被建立並使效能變差。如果每個CPU只有一個線程,那麼就不存在環境切換,而且線程會全速運行。 然而,微軟在設計windows 的時候,更側重於可靠性和響應能力,而非側重原是速度和效能。我喜歡這種決定:如果今天的應用程式仍然能“停止、凍結”OS和其他應用

淺嘗EffectiveC#_10

Item 17: Implement the Standard Dispose Pattern實現標準的釋放模式 ● 現在是時候來討論如何寫代碼來管理這些類佔用的非記憶體資源了。一個標準的模式就是利用.Net架構提供的方法處理非記憶體資源。Now it’s time to cover how to write your own resourcemanagement code when you create types that contain resources other than

CLR_via_C#.3rd 翻譯[1.7 一般型別系統]

1.7 The Common Type System 一般型別系統 到目前為止,你應該已經知道CLR是關於類型的。類型為應用程式和組件提供了它們所需的功能。類型也作為一種機制是的一種語言編寫的代碼可以和另一種語言編寫的代碼進行無縫的繼承。猶豫類型是CLR的基礎,微軟為此專門指定了一個正式的規範——一般型別系統(Conmmon Type System)來描述類型的定義和行為。 Note:實際上微軟已經向ECMA提交了CTS,以及其他的.NET架構部分,包括檔案格式化、中繼資料、IL以及訪問底層的平

CLR_via_C#.3rd 翻譯[25.8 使用線程的理由]

25.8 Reasons to Use Threads 使用線程的理由 使用線程是出於三方面的理由: ● 可以使用線程將代碼同其他代碼隔離。這將提高你的應用程式的可靠性。事實上,這也是為什麼Windows在OS中引入線程概念的原因。Windows之所以需要線程來獲得可靠性,是因為你的應用程式對於作業系統來說是第三方組件,而Microsoft不會在你發布應用程式之前對這些代碼的品質進行驗證。但在發布前,你應該自行測試自己的所有應用程式。另外,由於你已經測試了完整的應用程式,所以應該知道它們是健壯和

CLR_via_C#.3rd 翻譯[1.8 通用語言規範]

1.8 The Common Language Specification 通用語言規範 COM允許不同語言建立的對象能夠進行相互之間的訪問。另一方面,CLR現在整合了所有語言,並且允許一種語言建立的對象在另一個不同語言編寫的代碼中被看做同等的成員。CLR的標準類型集合、中繼資料、和通用執行環境使得這種整合成為可能。 語言整合是一個很遙遠的目標,因為有一件事情是不容忽視的,程式設計語言之間有很大的區別。比如說,一些語言不區分大小寫符號,有些不提供不帶正負號的整數,有些不支援操作符重載,有些方法不

CLR_via_C#.3rd 翻譯[25.4 CPU趨勢 ]

25.4 CPU Trends CPU趨勢 在過去,CPU速度一直隨著時間也在變的越來越快,所以在舊機子上運行慢的應用程式在新機子上一般會快一些。然而,CPU製造商已經無法延續CPU越來越快的趨勢。當你的CPU處於告訴的狀態,它們會產生更多的熱量。幾年前,我從一個著名的廠商那裡購買了一台新款膝上型電腦。這台電腦的韌體有一個bug,造成它的風扇故障。最後,在開機一會以後,CPU和主板便燒壞了。硬體廠商更換了機子,並“改進”了韌體,是風扇能更頻繁的轉動。不幸的是,這也讓電用的更塊了,因為風扇也浪費電

CLR_via_C#.3rd 翻譯[1.9 與Unmanaged 程式碼的操作]

1.9 Interoperability with Unmanaged Code 與Unmanaged 程式碼的互通性 .NET架構提供了很多其他平台沒有的優勢。但是,很少有公司會重新設計並且重新實現它們的代碼。微軟也認識到了這個問題,並通過CLR來提供了一些機制,允許在應用程式中同事包含託管和Unmanaged 程式碼。具體的說,CLR支援三種互操作情形。  ■ Managed 程式碼能夠在DLL中調用非託管方法 Managed

淺嘗EffectiveCSharp_7

Item 14: Minimize Duplicate Initialization Logic  最小化重複的初始化邏輯寫構造器經常是一種重複的工作。許多人寫好第一個構造器後,用複製、粘貼到另一個構造器,來滿足對類的重載。從現在起,不要在這樣做,當你發現多種構造器擁有相同的邏輯時,把相同的邏輯提煉出來,放到一個公用的構造器中。你會體驗到防止代碼重複的好處。而編譯器也最小化的執行代碼,構造器允許一個構造器去訪問另一個構造器Code highlighting produced by

淺嘗EffectiveCSharp_5

Item 10:使用選擇性參數來減小方法重載 Use Optional Parameters to Minimize Method Overloads這似乎不是什麼很難實現或很新穎的特性(C#4.0新增),只要編譯器的支援就可以(VB很早就支援了)。估計加入的原因是群眾的呼聲太高了。C#中在調用點對已命名的參數進行了支援。這意味著正式參數名稱現在是你的公用介面的一部分類型。改變一個公用參數的名稱可能會破壞調用代碼。這意味著你應該避免在許多情況下使用具名引數,,你也應該避免在公用或受保護的方法中,

CLR_via_C#.3rd 翻譯[25.5 NUMA架構]

25.5 NUMA Architecture Machines NUMA架構的機器  儘管多核CPU表面上看起來十分強大,但它們也帶來了新的問題。現在,多個核心要並發訪問其他系統資源,這些資源就成為系統總體效能的瓶頸。例如,假如兩個核心需要同時訪問RAM,由於記憶體頻寬節流設定了總體效能,所以造成雙核系統相比單核系統只提升了30%到70%的效能。為了緩解這個問題,電腦現在採用了所謂的NUMA(Cache-Coherent Non-Uniform Memory Access)架構。  圖中的4*4

總頁數: 61357 1 .... 8979 8980 8981 8982 8983 .... 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.