Time of Update: 2018-12-07
大家可以看到,在上面的常式中,同步是通過等待Monitor.Pulse()來完成的。首先生產者生產了一個值,而同一時刻消費者處於等待狀態,直到收到生產者的“脈衝(Pulse)”通知它生產已經完成,此後消費者進入消費狀態,而生產者開始等待消費者完成操作後將調用Monitor.Pulese()發出的“脈衝”。它的執行結果很簡單: Produce: 1 Consume: 1 Produce: 2 Consume: 2 Produce: 3 Consume:
Time of Update: 2018-12-07
using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace 線程練習 { class Program { static void Main(string[] args) { Console.WriteLine("開始一個新的線程,名為次線程");
Time of Update: 2018-12-07
一、基本概念 進程:當一個程式開始運行時,它就是一個進程,進程包括運行中的程式和程式所使用到的記憶體和系統資源。而一個進程又是由多個線程所組成的。 線程:線程是程式中的一個執行流,每個線程都有自己的專有寄存器(棧指標、程式計數器等),但代碼區是共用的,即不同的線程可以執行同樣的函數。 多線程:多線程是指程式中包含多個執行流,即在一個程式中可以同時運行多個不同的線程來執行不同的任務,也就是說允許單個程式建立多個並存執行的線程來完成各自的任務。
Time of Update: 2018-12-07
這章將向大家介紹.NET中的線程API,怎麼樣用C#建立線程,啟動和停止線程,設定優先權和狀態. 在.NET中編寫的程式將被自動的分配一個線程.讓我們來看看用C#程式設計語言建立線程並且繼續學習線程的知識。我們都知道.NET的運行時環境的主線程由Main
Time of Update: 2018-12-07
對於以前做C#或者JAVA開發的朋友而言,初次接觸iOS開發,Obj-C的函數命名方式可能會感覺非常不習慣。尤其是開啟AppDelegate.m,映入眼帘的代碼竟然是:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // Override point for customization after
Time of Update: 2018-12-07
目錄一、什麼是Windows 服務?二、建立Windows 服務與安裝/卸載批處理。三、調試Windows 服務。本文一、什麼是Windows 服務?答:Microsoft Windows 服務(即,以前的 NT 服務)使您能夠建立在它們自己的 Windows
Time of Update: 2018-12-07
有傳聞說,這年頭不用Git就不是個程式員。傳聞歸傳聞,近些年來Git的發展是如火如荼。除了一些公用的Git平台外,大多的Git服務端都是在Linux上的,Windows的可選方案實在甚少。作為一個.Net碼農,當然希望能有個純Managed 程式碼的Git服務端。經過一晚上的學習,用純Managed 程式碼寫了個Git服務端供大家參考。 學習資料:暫無。
Time of Update: 2018-12-07
Cache用法之頁面聲明<%@ outputCacheDuration="#ofseconds"Location="Any|Client|Downstream|Server|None"VaryByControl="ControlName"VaryByCustom="browser|customstring"VaryByHeader="headers"VaryByParam="Parametername" %>Cache用法之代碼控制HttpCachePolicy類是專門用來控制項Ca
Time of Update: 2018-12-07
我們在用c#調用delphi 或者Vc寫的dll檔案時,如果他們不是com+類型的dll檔案,就要用託管帶來的形式來調用。例如: [DllImport("ScCard.dll", CallingConvention = CallingConvention.StdCall)] public static extern int GerCard(string pConnect, int Count, int id);
Time of Update: 2018-12-07
1.當使用postbackurl向目標頁提交參數的時候可以使用以下方法。DropDownList d = (DropDownList)PreviousPage.FindControl(""); 2. cookie的使用 //種cookie HttpCookie cookie = new HttpCookie("myCookie"); cookie.Values.Add("mystate", "123");
Time of Update: 2018-12-07
我始終認為,對一個初學者來說,IT界的技術風潮是不可以追趕的,而且也沒有能力去追趕。我時常看見自己的DDMM們把課本扔了,去賣些價格不菲的諸如C#, VB.Net 這樣的大部頭,這讓我感到非常痛心。而許多搞不清指標是咋回事的BBS站友眉飛色舞的討論C#裡面可以不用指標等等則讓我覺得好笑。C#就象當年的ASP一樣,“忽如一夜春風來,千樹萬樹梨花開”,結果許多學校的資訊學院成了“Web 學院”。96,97級的不少大學生都去做Web
Time of Update: 2018-12-07
在同事的部落格上面看到一個關於用C#拆分跟合并GIF圖片的文章,不過看完發現只是寫了如何拆分GIF圖片而已- -!由於自己也感興趣於是找了一下相關資料,自己敲了點代碼,記錄一番先。 首先看下把GIF圖片拆分成多張JPG的代碼。C#.NET中提供的Image類結合FrameDimension類其實已經可以做到這一點了,具體代碼如下(這裡我是寫了一個WinForm查詢來測試,是在一個名為button1的按鈕中實現這一功能的):c#代碼?1234567891011121314151617
Time of Update: 2018-12-07
今天在做項目的時候,由於要批量產生儲值卡,儲值卡的密碼是隨機產生,結果在程式運行時,儲值卡的密碼幾乎都是一樣的,於是手動調試,調試生產的密碼又不一樣,納悶半天,仔細一想,隨機可能是以時間為種子,於是就換了個全域的Random ,再運行程式,一切正常: 分析:出現相同的原因: Random是根據時間產生隨機數的,在實際啟動並執行時候,沒有斷點,所以兩句話執行的時間間隔非常短,無法被計時器識別,所以用的是一個相同的時間做的種子,就得到了相同的隨機數
Time of Update: 2018-12-07
註:本文思路已經應用於“飛梭TXT文本資料處理百寶箱”中,有興趣的朋友可以下載試用。我們知道,如果需要批量產生海量無重複的隨機資料是個很麻煩的事情。如果每次產生都要和之前產生的資料進行比對的話,那效率會隨著資料量的增大而越來越低,最後不堪忍受。今天介紹一種另類的思路,可以高效的做到隨機資料無重複。分析:所謂隨機資料,就是在某個設定的區間內隨機提取一批資料出來。那麼我們可以變通的思考一下:我們可不可以將此設定的資料區間A按照所需的資料量N分成N個小的資料區間B,如果這樣的話,我們只需要每次從資料區
Time of Update: 2018-12-07
效果:因為工作中要用到 類似的代碼 google 了 半天也沒找到, 最後 還是 找到了 園中的 這一篇C# 模仿360安全衛士玻璃按鈕(源碼)因為本人水平有限, 但又急著用 所以 胡亂加了一點 代碼 勉強實現了 類似的效果 另外 感謝 原作者(阿東東)提供的 源碼 其它部分基本都沒有修改 主要是在 void DrawImage(Graphics g) 這個 代碼中添加了 畫圓角矩形和數字 效果 if
Time of Update: 2018-12-07
很多時候我們需要以編程的方式擷取命令列輸出的內容,研究了不少時間,終於搞定了。擷取命令列輸出內容的方式有傳統和非同步兩種方式。傳統方式: 1 using (Process process = new System.Diagnostics.Process()) 2 { 3 process.StartInfo.FileName = "ping"; 4 process.StartInfo.Arguments = "www.ymind.net"; 5 //
Time of Update: 2018-12-07
最近對代碼作了一些最佳化,實驗後效果還可以,但是發現介面會閃爍,具體是TreeView控制項會閃爍,語言為C#,IDE為VS2005。在查閱一些資料,使用了一些基本技術後(如開啟雙緩衝),發現沒什麼效果。於是使用Profiler工具,尋找出瓶頸在於每次更新完介面的EndUpdate操作(使用這個是為了減少介面更新次數,但這裡不理想是因為控制項中中的元素很多),猜想大概每次更新,.Net底層都會更新重繪每個圖元,所以速度會慢,造成閃爍。但是如果這樣,使用雙緩衝應該會有較好效果。再看代碼,發現可能是
Time of Update: 2018-12-07
文章目錄 Feedback 索引器是一種特殊的類成員,它能夠讓對象以類似數組的方式來存取,使程式看起來更為直觀,更容易編寫。1、索引器的定義C#中的類成員可以是任意類型,包括數組和集合。當一個類包含了數組和集合成員時,索引器將大大簡化對數組或集合成員的存取操作。定義索引器的方式與定義屬性有些類似,其一般形式如下:[修飾符] 資料類型this[索引類型 index]{get{//獲得屬性的代碼}
Time of Update: 2018-12-07
前面一篇博文:從C#5.0說起:再次總結C#非同步呼叫方法發展史,總結了非同步方法呼叫調用的發展史。關於C#2.0到5.0添加了一些什麼東西,前面一篇博文中如下寫到:1.0版本 - 基本C#文法。2.0版本 - 泛型的支援,CLR進行了升級,從根本上支援了運行時泛型。3.0版本 - LINQ,添加了from / join等類SQL關鍵字,添加了擴充函數,添加了編譯期動態類型var關鍵字。4.0版本 - dynamic關鍵字,CLR進行升級,加入DLR,開始對動態進行友好的支援。同時加入動態參數、
Time of Update: 2018-12-07
這幾天看了不少C#方面的知識,感覺看了之後一段時間後就忘了,特寫個備忘,免得忘了又要從頭找起. 定義:Reflection,通過它我們可以在運行時動態獲得各種資訊,如程式集、模組、類型、欄位、屬性、方法和事件 自己參考資料後寫的代碼:using System;using System.Collections.Generic;using System.Text;using System.Reflection;namespace Refelction{ class