原创 多線程:C#線程同步lock,Monitor,Mutex,同步事件和等待句柄(上)(轉)

 本篇從Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler的類關係圖開始,希望通過本篇的介紹能對常見的線程同步方法有一個整體的認識,而對每種方式的使用細節,適用場合不會過多解

原创 小測試

具體的需求是 在某一時間點,只有N個線程在併發執行,如果有多餘的線程,則排隊等候~ 還真是費盡心思啊~最終還是被我攻克了~ 下面我就來說說具體的實現 C#提供了Mutex與Interlocked這兩個與線程相關的類,都在Threading

原创 多線程:C#線程同步lock,Monitor,Mutex,同步事件和等待句柄(下) (轉)

   前兩篇簡單介紹了線程同步lock,Monitor,同步事件EventWaitHandler,互斥體Mutex的基本用法,在此基礎上,我們對它們用法進行比較,並給出什麼時候需要鎖什麼時候不需要的幾點建議。最後,介紹幾個FCL中線程安全

原创 千萬數量級分頁存儲過程

千萬數量級分頁存儲過程數據分頁是開發過程中常見任務之一,大的項目開發當中經常會使用存儲過程進行數據分頁,有網上流行的《通用高效分頁存儲過程代碼》,也有號稱可以輕鬆應付百萬數據的 《一個高效的數據分頁的存儲過程 可以輕鬆應付百萬數據》,通過

原创 C#獲取相對路徑

一、獲取當前文件的路徑 1.  System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 獲取模塊的完整路徑,包括文件名。 2.  System.Environm

原创 數據庫架構更新Sql語句編寫規範

創建數據庫表 下例顯示 pubs 數據庫中所創建的三個表(jobs、employee 和 publishers)的完整表定義,其中包含所有的約束定義。 CREATE TABLE 表名 ( 字段名1 數據類型 是否允許爲null, 字段名2

原创 多線程:C#線程同步lock,Monitor,Mutex,同步事件和等待句柄(中) (轉)

 本篇繼續介紹WaitHandler類及其子類Mutex,ManualResetEvent,AutoResetEvent的用法。.NET中線程同步的方式多的讓人看了眼花繚亂,究竟該怎麼去理解呢?其實,我們拋開.NET環境看線程同步,無非是

原创 C# 中的委託和事件

C# 中的委託和事件 引言 委託 和 事件在 .Net Framework中的應用非常廣泛,然而,較好地理解委託和事件對很多接觸C#時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真是太容易了,而沒有過去的人每次見到委

原创 VS.NET 開發Windows服務的步驟

在很多應用中需要做windows服務來在一些後臺操作,比如監視應用程序的運行狀況等 利用vs.net我們可以在幾分鐘之內建立其windows服務,非常簡單下面說一下步驟1. 新建一個項目2. 從一個可用的項目模板列表當中選擇Window

原创 C#中的問號

在C#中有個較爲重要,而常被一些人忽視的符號——問號(?)。在這裏整理一下它在C#的幾種情況:    1. 可空類型修飾符“T?”。  可空類型的基礎類型可以是任何非可空值類型或任何具有struct約束的類型參數,但不能是可空類型或引用類

原创 C#中千分位問題

1、C#中用最簡單的方法把數字(不含小數)轉換爲千分位格式:     如1234567變成1,234,567      方法:1234567.ToString("###,###")   或  1234567.ToString("N0") 

原创 Sybase數據庫 不能修改字段長度的問題

今天在Sybase中執行alter table hw_ckcljl_jz modify zzlx decimal(16,0) not null; 語句時報:無法執行語句。The 'select into' database option

原创 查看鎖表進程SQL語句

查看鎖表進程SQL語句1: select sess.sid,    sess.serial#,    lo.oracle_username,    lo.os_user_name,    ao.objec

原创 關於數據庫死鎖的檢查方法

關於數據庫死鎖的檢查方法 一、         數據庫死鎖的現象 程序在執行的過程中,點擊確定或保存按鈕,程序沒有響應,也沒有出現報錯。 二、         死鎖的原理 當對於數據庫某個表的某一列做更新

原创 C#委託的異步調用

C#委託的異步調用 本文將主要通過“同步調用”、“異步調用”、“異步回調”三個示例來講解在用委託執行同一個“加法類”的時候的的區別和利弊。   首先,通過代碼定義一個委託和下面三個示例將要調用的方法: /*添加的命名空間using