使用類、類的方法或類的屬性都可以向線程傳遞參數:
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){ }