用C#創建線程是一件很方便的事,一個Void類型的函數,一句聲明就可以創建出自己的線程應用。看下面的例子:
簡單線程創建
public class ThreadController
{
public ThreadController()
{
System.Threading.Thread thread = new System.Threading.Thread(ThreadMethod);
thread.Start();
}
private void ThreadMethod()
{
//Do something
}
}
不過從上面的例子可以看到一個問題,就是ThreadMethod方法是不能傳入參數的。要解決這個問題,需要用到ParameterizedThreadStart。看這個例子:
參數線程
public class ThreadController
{
public ThreadController()
{
int value = 10;
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(ThreadMethod));
thread.Start(value);
}
private void ThreadMethod(object parameter)
{
Console.WriteLine(parameter.ToString());
}
}
這樣線程的響應函數就可以接收參數了。這裡還有一個要注意的問題,就是作為參數傳遞進來的parameter,雖然在參數描述上沒有加Ref,但實際上是傳地址的引用。所以如果在ThreadMethod中對parameter進行修改。ThreadController中的value值也會被修改。