使用類、類的方法或類的屬性都可以向線程傳遞參數:
public class UrlDownloader{ string url; public UrlDownloader (string url) { this.url = url; } public void Download() {
WebClient wc = new WebClient();
Console.WriteLine("Downloading " + url); byte[] buffer = wc.DownloadData (url); string download = Encoding.ASCII.GetString(buffer); Console.WriteLine(download); Console.WriteLine("Download successful.");
//這裡你可以將download進行儲存等處理...... }}[... 在另一個類中使用它們...] UrlDownloader downloader = new UrlDownloader (yourUrl);new Thread (new ThreadStart (downloader.Download)).Start();
注意參數是如何傳遞的。
在.NET 2.0中還可以這樣:
(CODE-BESIDE)
方式一:
ThreadStart starter = delegate { Download(yourUrl); });new Thread(starter).Start();
//使用線程池WaitCallback callback = delegate (object state) { Download ((string)state); };ThreadPool.QueueUserWorkItem (callback, yourUrl);方式二(使用ParameterizedThreadStart):
Thread t = new Thread (new ParameterizedThreadStart(DownloadUrl));t.Start (myUrl);static void DownloadUrl(object url){ // ....
}