Time of Update: 2018-12-06
摘要:本文介紹C# Monitor類可以鎖定對象,一個線程只有得到這把鎖才可以對該對象進行操作。對象鎖機制保證了在可能引起混亂的情況下一個時刻只有一個線程可以訪問這個對象。 當多線程公用一個對象時,也會出現和公用代碼類似的問題,這種問題就不應該使用lock關鍵字了,這裡需要用到System.Threading中的一個類Monitor,我們可以稱之為監視器,Monitor提供了使線程共用資源的方案。 C#
Time of Update: 2018-12-06
下面我們就把在Windows
Time of Update: 2018-12-06
Regex能根據設定匹配各種資料(比如:e-mail地址,電話號碼,身份中號碼等等)。Regex功能強大,使用靈活,C#,Java,JavaScript等多種語言都支援Regex。在互連網上“抓取資料”更是少不了使用Regex。今天我要說的是在C#中使用Regex自動匹配並擷取所需要的資料。從下面是某個IP查詢網站返回查詢結果的一個部分(字串),現在就是要從這個字串中擷取“查詢結果1:”後面的“北京市
Time of Update: 2018-12-06
·關於C#中timer類 在C#裡關於定時器類就有3個 1.定義在System.Windows.Forms裡 2.定義在System.Threading.Timer類裡 3.定義在System.Timers.Timer類裡 System.Windows.Forms.Timer是應用於WinForm中的,它是通過Windows訊息機制實現的,類似於VB或Delphi中的Timer控制項,內部使用API SetTimer實現的。它的主要缺點是計時不精確,而且必須有訊息迴圈,Console
Time of Update: 2018-12-06
在開發中經常會遇到線程的例子,如果某個後台操作比較費時間,我們就可以啟動一個線程去執行那個費時的操作,同時程式繼續執行。在某些情況下可能會出現多個線程的同步協同的問題,下面的例子就展示了在兩個線程之間如何協同工作。這個程式的思路是共同做一件事情(從一個ArrayList中刪除元素),如果執行完成了,兩個線程都停止執行。代碼如下:using System;using System.Collections;using System.Collections.Generic;using System.T
Time of Update: 2018-12-06
在建立列表類時,清單項目的資料類型可能是int、string或其他類型,但不管是什麼類型,如果對列表類的處理方法相同,就沒有必要事先指定資料類型,留待列表類執行個體化時再指定。這相當於把資料類型當成參數,可以最大限度地重用代碼、保護類型的安全以及提高效能。泛型將型別參數(type parameter)的概念引入.NET
Time of Update: 2018-12-06
using System; namespace Zoo{ //************定義基類Animal public class Animal { static string baseClassName; //public string eatkind; protected string _skincolor;
Time of Update: 2018-12-06
C#中的繼承分為實現繼承和介面繼承,今天主要談一下實現繼承。 實現繼承表示一個類型派生於另一個基底類型,該類型擁有基底類型的所有成員欄位和函數。在實現繼承中,衍生類別型的每個函數採用基底類型的實現代碼。——摘自《C#進階編程第六版》92頁 為什麼要使用類繼承呢,舉個小例子,假如說我們之前有個類叫Peoplo(人類),他具有身高、體重等屬性,同時還具有吃飯、睡覺等方法,可是由於科技的進步人們又發明了機器人(Robot),它不但可以像人類那樣具有身高、體重,還能夠吃飯、睡覺外,它還具備人類所不具
Time of Update: 2018-12-06
FlyTcpFramework源於網上很流行的一個C#非同步TCP通訊類庫,我進行了一些整理和功能上的擴充,加入了檔案傳輸的功能,並製作了一個MSDN風格的手冊。類圖:使用方法:下載源碼並開啟源碼解決方案,解決方案中包含四個項目: FlyTcpFramework:類庫 ppCLient:PDA用戶端Demo PPServer:伺服器端Demo WInClient:WInForm用戶端Demo修改PPserver中監聽的IP地址,運行PPserver,輸入
Time of Update: 2018-12-06
轉自http://www.cnblogs.com/c2303191/articles/826571.htmlControl.Invoke 方法 (Delegate) :在擁有此控制項的基礎視窗控制代碼的線程上執行指定的委託。Control.BeginInvoke 方法 (Delegate)
Time of Update: 2018-12-06
原理其實很簡單,在cmd.exe下面ping一下幾台機,然後用arp -a命令查看一下,這種方式比開多線程去迴圈掃描的方式來的簡單而有效。//首先來個迴圈ping一下那個網段的主機。//其次用以下的函數去擷取所有的區域網路內有響應的ip地址清單public static ArrayList GetAllLocalMachines(){ Process p = new Process(); p.StartInfo.FileName = "cmd.exe";
Time of Update: 2018-12-06
TcpSend視窗用於發送訊息,另外寫一個用於接收訊息的應用程式,訊息接受到以後,必須要關閉接收訊息的視窗,才能在接收新的訊息,不知道怎麼能解決這個問題。原始碼:發送訊息的視窗代碼 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;
Time of Update: 2018-12-06
在C#.NET中,如何產生PDF檔案?主要有以下幾個途徑:1.使用.NET檔案流技術;若通過.NET的檔案流技術產生PDF檔案,必須對PDF檔案的文法很清楚,例如BT表示實體內容開始;ET表示實體內容結束;TD表示換行等等。我們可以從Adobe的官方網站上下載PDF的文法說明文檔,但文檔幾乎有1000頁。如果熟悉好文法以後再編程,花費的時間肯定很長,而且產生的PDF文檔不一定能滿足要求。有關C#
Time of Update: 2018-12-06
這幾天做向Excel插入資料,其中有插入圖片的需求,經實驗,下面2種方法都可以插入圖片,但各有不同的用處。現將這2種方法共用出來, 希望需要的朋友進行參考,代碼中已經有詳細注釋了。注意:使用之前需要引用COM:Microsoft Office 11.0 Object Library 如果引用列表中沒有,需要自行添加 C:\Program Files\Microsoft
Time of Update: 2018-12-06
即是所謂的IEEE754標準,這也是大多數硬體儲存浮點數的標準。單精確度浮點數佔4個位元組,表示範圍為:在負數的時候是從 -3.402823E38 到 -1.401298E-45,而在正數的時候是從 1.401298E-45 到 3.402823E38 。在C#中的轉換函式為:1,由四個位元組的十六機制數組轉浮點數: byte[] bytes = new byte[4]; BitConverter.ToSingle(bytes,
Time of Update: 2018-12-06
原文地址:http://www.c-sharpcorner.com/UploadFile/neo_matrix/SimpleFTP01172007082222AM/SimpleFTP.aspx[原文源碼下載] .net 2.0(c#)下簡單的FTP應用程式原文發布日期:2007.01.18作者:Neo Matrix翻譯:webabcd本文使用.net 2.0(c#)來實現一般的FTP功能介紹微軟的.net framework
Time of Update: 2018-12-06
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using CodeClassLibrary;using System.IO;using System.Net;namespace ValidatorCodeDemo{
Time of Update: 2018-12-06
只能輸入數字:"^[0-9]*$"。只能輸入n位的數字:"^\d{n}$"。只能輸入至少n位的數字:"^\d{n,}$"。只能輸入m~n位的數字:。"^\d{m,n}$"只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。只能輸入非零的正整數:"^\+?[1-9][0-9]*$"。只能輸入非零的負整數:"^\-[1-9][]0
Time of Update: 2018-12-06
下面的方法是我在實際開發中摸索出來的,可以在很大程度上簡化調用預存程序的代碼。首先來看一下C#調用預存程序的一般過程:1、開啟資料庫連接SqlConnection;2、產生一個SqlCommand;3、向命令對象填充參數;4、執行預存程序;5、關閉串連;6、其他動作。我這裡講的主要是簡化第3步操作,最終在調用預存程序的時候只需要傳遞預存程序的名字和相應的參數值。調用樣本如下: dbAccess.run("p_am_deleteFile", new object[]{LoginId,
Time of Update: 2018-12-06
所謂"B/S"是指Browser/Server(瀏覽器/伺服器),即用戶端是標準的瀏覽器(如Internet Explore,Netscape Navigator等),伺服器端為標準的WEB伺服器協同應用伺服器響應瀏覽器的請求。 B/S模式是一種三層結構的系統。第一層客戶機是使用者與整個系統的介面。客戶的應用程式精簡到一個通用的瀏覽器軟體,如Netscape