【发布时间】:2014-11-25 08:19:06
【问题描述】:
假设我想用任务并行库下载多个文件,现在我想可视化从 VS2010 IDE 调试时有多少线程在工作?这是一个使用 TPL 下载许多文件的代码 sn-p。
var list = new[]
{
"http://google.com",
"http://yahoo.com",
"http://stackoverflow.com"
};
var tasks = Parallel.ForEach(list,
s =>
{
using (var client = new WebClient())
{
Console.WriteLine("starting to download {0}", s);
string result = client.DownloadString((string)s);
Console.WriteLine("finished downloading {0}", s);
}
});
请指导我或将我重定向到我可以从中获取知识的任何文章,以查看正在运行多少线程来完成我的任务。
【问题讨论】:
-
为什么这对你很重要?也更喜欢
DownloadStringTaskAsync而不是同步版本。因为操作本质上是异步的。 -
如果您坚持使用 VS 2010 和 .NET 4.0,您应该考虑升级到免费的 Visual Studio 2013 社区(与 VS Pro 相同)并开始使用添加了
DownloadStringTaskAsync的 .NET 4.5 .即使您必须支持 XP(不运行 4.5),您也可以将 BCL Async 和 HttpClient 包添加到 VS 2013。 -
这不清楚“即使您必须支持 XP(不运行 4.5),您也可以将 BCL Async 和 HttpClient 包添加到 VS 2013”您想说的话。跨度>
标签: c# .net multithreading task-parallel-library async-await