原创 NEW關鍵字的三種用法

  一、             new運算符 ①     用於創建對象和調用構造函數。 例如:   Class1 obj  = new Class1();  ②     還可用於創建匿名類型的實例: var query = from cu

原创 關於WPF中TextBox行的選擇與顯示的問題

        最近做了一個小工具,其中用到了WPF中的TextBox控件。對於這個控件的使用,其中主要的一個功能是需要選擇指定的行,並將其顯示在控件可見區域的視圖中(如果不在可視區域時,需要控件自動滾動到改行)。在我使用時,發現一個問題,

原创 我的友情鏈接

51CTO博客開發

原创 C#多線程學習4——多線程的自動管理(線程池)

 在多線程的程序中,經常會出現兩種情況: 一種情況:   應用程序中,線程把大部分的時間花費在等待狀態,等待某個事件發生,然後才能給予響應                   這一般使用ThreadPool(線程池)來解決; 另一種情況

原创 C#多線程學習6——互斥對象

 如何控制好多個線程相互之間的聯繫,不產生衝突和重複,這需要用到互斥對象,即:System.Threading 命名空間中的 Mutex 類。 我們可以把Mutex看作一個出租車,乘客看作線程。乘客首先等車,然後上車,最後下車。當一個乘客

原创 關於反射的初步介紹

 反射的作用: 1. 可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型; 2. 應用程序需要在運行時從某個特定的程序集中載入一個特定的類型,以便實現某個任務時可以用到反射; 3. 反射主要應用於類庫,這些類

原创 C#多線程學習1——多線程的相關概念

 什麼是進程? 當一個程序開始運行時,它就是一個進程,進程包括運行中的程序和程序所使用到的內存和系統資源。 而一個進程又是由多個線程所組成的。 什麼是線程? 線程是程序中的一個執行流,每個線程都有自己的專有寄存器(棧指針、程序計數器等

原创 C#多線程學習2—— 如何操縱一個線程

 下面我們就動手來創建一個線程,使用Thread類創建線程時,只需提供線程入口即可。(線程入口使程序知道該讓這個線程幹什麼事) 在C#中,線程入口是通過ThreadStart代理(delegate)來提供的,你可以把ThreadStart

原创 C#多線程學習5——多線程的自動管理(定時器)

 Timer類:設置一個定時器,定時執行用戶指定的函數。               定時器啓動後,系統將自動建立一個新的線程,執行用戶指定的函數。 初始化一個Timer對象:  Timer timer = new Timer(timer

原创 REF和OUT關鍵字的介紹

       最近用到了ref和out關鍵字,對於其概念有些遺忘,就又參考MSDN的資料學習了一下,下面是我參考MSDN整理出來的兩者的簡單介紹及比較: ref與out的比較: ref與out關鍵字都是使參數通過引用來傳遞的,

原创 C#多線程學習3—— 生產者和消費者

 前面說過,每個線程都有自己的資源,但是代碼區是共享的,即每個線程都可以執行相同的函數。這可能帶來的問題就是幾個線程同時執行一個函數,導致數據的混亂,產生不可預料的結果,因此我們必須避免這種情況的發生。 C#提供了一個關鍵字lock,

原创 我的友情鏈接

51CTO博客開發