代碼
Code highlighting PRoduced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//小張類
public class MrZhang
{
//其實買車票的悲情人物是小張
public static void BuyTicket()
{
Console.WriteLine("NND,每次都讓我去買票,雞人呀!");
}
public static void BuyMovieTicket()
{
Console.WriteLine("我去,自己泡妞,還要讓我帶電影票!");
}
}
//小明類
class MrMing
{
//聲明一個委托,其實就是個“命令”
public delegate void BugTicketEventHandler();
public static void Main(string[] args)
{
//這里就是具體闡述這個命令是干什么的,本例是MrZhang.BuyTicket“小張買車票”
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
//這時候委托被附上了具體的方法
myDelegate();
Console.ReadKey();
}
}
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
這是委托的聲明方法, BugTicketEventHandler(委托的方法);委托的方法必須要加上,因為委托的構造函數是不為空的。
注:委托的參數和返回類型,都要和你要具體委托的方法要一致,例:
public delegate void BugTicketEventHandler();
public static void BuyTicket()
{
Console.WriteLine("NND,每次都讓我去買票,雞人呀!");
}
委托鏈:
myDelegate += MrZhang.BuyMovieTicket;
結束!
委托的用途和c++的函數指針相似,但還有提高. 可以把函數做參數傳遞在你有好幾個函數,而又事先不知道改運行那個好時,就是典型的應用例子. 比如你要實現兩操作數的加減乘除那就可以定義一個委托 四個函數具體用什么操作需要用戶決定, 這時就可以再定義一個以委托作為參數的函數實現什么運算就把相應的函數傳進去就行了
事件監聽函數+=委托(需要執行函數)
在System.Timers.Timer中用到
關于timer 的三種形式
//1.實現按用戶定義的時間間隔引發事件的計時器。此計時器最宜用于 Windows 窗體應用程序中,并且必須在窗口中使用。
System.Windows.Forms.Timer
// 2.提供以指定的時間間隔執行方法的機制。無法繼承此類。
System.Threading.Timer
//3.在應用程序中生成定期事件。
System.Timers.Timer
下面兩種應該是不同線程,無法直接使用form上面的控件
第二種的timer.dispose()結束有延遲,類似買早餐排隊,當在最大早餐(線程達到)時,多次申請早餐(線程)會被記錄,造成執行結束行為時,持續的資源消耗。
第三種的timer.stop()會取消申請,雖然有幾個延遲,影響不大
所以,第一種不用申請線程,單線程會假死,第二和第三需要申請線程
寫在最后吧。GC,垃圾回收裝置 暫時不接觸DLL,非沖突就用close和dispose吧,析構有可能會沖突GC,其實dispose如果不追求可能也沒關系
需要注意的是在response的clear和end 第一個清理緩沖區,第二個結束js ?直接輸出。
———————————————————————————————————————————————
不同線程之間的通訊
mythread = new Thread(new ThreadStart(BeginListen));
mythread.Start();
private void BeginListen()
{
SetLabelEventHandler setLabelEventHandler = delegate() //匿名委托+Invoke
{
label1.Text = "我改變了它";
};
label1.Invoke(setLabelEventHandler);
}—————————————————————————————————————————————————
delegate和event
http://www.companysz.com/shensr/archive/2005/11/24/283653.html
新聞熱點
疑難解答