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

2008年2月21日 星期四

VMWare OS Image

很多時候用VMWare的理由是要在非windows平台上測試程式的運作,但是手邊沒有現有的系統可以用,唯一的方式就是灌新系統到VMWare中。灌系統的經驗就是要花非常久的時間,尤其在這種虛擬出來的機器。

有沒有更快的方式呢?當然有。Thoughtpolice專門提供免費系統的image檔。只要下載後就可以使用VMWare開啟,就可以直接開機進入系統了。

http://www.thoughtpolice.co.uk/

image

這網站提供FreeBSD、CentOS、Ubuntu、Fedora及Debian各版本下載。下載方式有http及bt(我終於可以在學術網路上正大光明用bt了)。image大小通常1G左右。下載後若有缺少套件就使用yum之類更新程式做更新即可。安全方面,我假設它沒有被裝後門好了^^。