有趣的多线程编程(2)——线程中的参数传递

王朝other·作者佚名  2006-02-04
窄屏简体版  字體: |||超大  

使用类、类的方法或类的属性都可以向线程传递参数:

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)

{

// ....

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航