2008年2月28日 星期四

C#用匿名方式使用Thread

一般看到C# Thread的範例是

Thread thread=new Thread(Do);
thread.Start();

代表的是將Do這function用Thread方式跑。而Do通常是一個無傳入引數的funciton。這裡就產生一個問題了,如果要傳入一個以上的引數,就不能用這種方式執行了。

在java中,Thread可以用匿名方式(Anonymous)啟動,範例如下:

Thread thread=new Thread(){
public void run(){
//Do something, like function f(x,y)
}};
thread.start();

其實在C#中也同樣有這樣的機制。寫的方式略與java不太相同。方法如下:

Thread thread=new Thread(delegate(){
//Do something, like function f(x,y)
});
thread.Start();

這樣一來,就可以隨心所欲在任何地方啟動一個新Thread了。

參考資料:
[1]C# Anonymous in depth http://bartdesmet.net/blogs/bart/archive/2006/09/10/4409.aspx
[2]Creating threads with inner classes http://java.poac.ac.cn/codeopen/jiaocheng/java2s/Code/Java/Threads/Creatingthreadswithinnerclasses.htm

沒有留言: