原创 C#多線程(三)——ThreadPool的使用

1.  應用程序中的線程把大部分的時間花費在等待狀態,等待某個事件發生,然後才能給予響應,這種情況下需要使用ThreadPool。 2.  ThreadPool可以作爲一個線程的容器,ThreadPool類也是一個靜態類,你不能也不必要生

原创 C#多線程(四)——Timer的使用

1.       Timer類的作用是設置一個定時器,定時執行用戶指定的函數,而這個函數的傳遞是靠另外一個代理對象TimerCallback,它必須在創建Timer對象時就指定,並且不能更改。定時器啓動後,系統將自動建立一個新的線程,並

原创 wf工作流——基礎活動(帶詳細文檔說明)

1.CodeActivity雖然在工作流中執行自定義代碼非常有用,但是實際上Code活動應該儘量少使用.我們應該將這些代碼封裝到自定義活動中.自定義活動可以擁有屬性,而且可以重複使用.而且,許多活動在執行時都會觸發事件.有時候,我們完全可

原创 SQL Server 2005返回剛剛插入的數據條目id值

有些時候我們需要得到剛剛插入數據庫中的條目id,用於相關係統的更改,在以前我是使用select+top 1+desc 這種笨方法實現的,在沒有併發的時候,還說的過去,但用戶一多的話,這種方法就不行了,當然,你也可以考慮加鎖的辦法,但是對性

原创 C#多線程(一)——簡介

多線程是爲了同步完成多項任務,不是爲了提高運行效率,而是爲了提高資源使用效率來提高系統的效率。線程是在同一時間需要完成多項任務的時候實現的。一個程序開始運行時,它就是一個進程,進程所指包括運行中的程序和程序所使用到的內存和系統資源。而一個

原创 TransactionScope使用(三)——TransactionScopeOption的使用

TransactionScopeOpetion有三個選項,分別是: 1.  Required(默認):如果存在環境事務,那麼就加入其中,如果不存在就創建新事務。如果加入事務那麼只有在環境事務提交後纔算提交。 2.  RequiresNew

原创 DataTable in WCF

在客戶端與服務器之間交換的服務契約中,最常見的一種數據契約類型是數據庫的類型。 在WCF中,我們可以定義DataSet和DataTable類型的服務契約。 【OperationContract】DataTable ×××();   但是我

原创 TransactionScope使用(一)——簡單的實現事務處理

事務屬性 事務應該具有4個屬性:原子性、一致性、隔離性、持續性。這四個屬性通常稱爲ACID特性。     原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的操作作要麼都做,要麼都不做。      一致性(cons

原创 C#多線程(二)——生產者和消費者實例

  (1)       Consumer表示消費類,其中定義了一個ArrayList表示容器,容器中裝的是Goods這個類的對象。主要是方法Consumption,這個是表示消費的方法。具體代碼如下: public class Cons

原创 AutoResetEvent和ManualResetEvent用法

概述:AutoResetEvent和ManualResetEvent從字面意思來講第一個表示的是自動重置,第二個表示手動重置,它們兩都有三個方法Reset(),Set(),WaitOne()。在創建對象的時候有一個bool參數,true表

原创 WCF開發筆記(一)

1.在使用vs2008開始建立wcf項目的時候,會在項目中出現app.config文件,建立的這個wcf library是可以直接通過vs2008集成的工具WcfTestClient.exe進行調試的,但是如果使用到 了DataTabl

原创 Repeater控件嵌套使用

概述:在項目中做權限的時候使用到了Repeater的嵌套(像for循環嵌套),如圖: 這裏的功能頁面和功能權限都是通過repeater遍歷出來的,表示的是一個功能頁面中包含多個功能權限,是個一對多的關係。具體的權限設計這裏不說明,主要

原创 C#集合類選擇

一定要謹慎選擇 System.Collections 類。選用錯誤的類型可能限制您使用集合。考慮以下問題:您是否需要一個序列列表,其中的元素通常在檢索其值後被放棄? 如果需要,那麼在需要先進先出 (FIFO) 行爲時請考慮使用 Queue

原创 C#中使用Monitor類、Lock和Mutex類來同步多線程的執行

    在多線程中,爲了使數據保持一致性必須要對數據或是訪問數據的函數加鎖,在數據庫中這是很常見的,但是在程序中由於大部分都是單線程的程序,所以沒有加鎖的必要,但是在多線程中,爲了保持數據的同步,一定要加鎖,好在Framework中已經爲

原创 Lock關鍵字死鎖

c#中有個關鍵字lock,它的作用是鎖定某一代碼塊,讓同一時間只有一個線程訪問該代碼塊,下面就我個人而言談談lock關鍵字的原理和其中應注意的幾個問題: lock的使用原型是: lock(X) {     //需要鎖定的代碼.... }