Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET 4异步WebRequest与多线程_C#_.net_Httpwebrequest - Fatal编程技术网

C# .NET 4异步WebRequest与多线程

C# .NET 4异步WebRequest与多线程,c#,.net,httpwebrequest,C#,.net,Httpwebrequest,我正在使用C#.NET4和MSSQL 我正在编写一个代码,下载不同网站的html,并使用正则表达式进行分析 代码执行所需的大部分时间是等待网站html下载完成 目前我正在使用Task.Factory.StartNew创建多个调用DownloadHtml()的线程。DownloadHtml使用WebRequest和StreamReader下载和读取网站的html 1。我是否应该将下载的HTML更改为使用Async WebRequest,而只使用单个线程? 2.这与使用多线程有何不同? 我建议您使用

我正在使用C#.NET4和MSSQL

我正在编写一个代码,下载不同网站的html,并使用正则表达式进行分析

代码执行所需的大部分时间是等待网站html下载完成

目前我正在使用Task.Factory.StartNew创建多个调用DownloadHtml()的线程。DownloadHtml使用WebRequest和StreamReader下载和读取网站的html

1。我是否应该将下载的HTML更改为使用Async WebRequest,而只使用单个线程?
2.这与使用多线程有何不同?

  • 我建议您使用异步web请求。重要的是要知道这不使用单个线程。异步请求的回调将在线程池后台线程上执行。在您使用TPL时,我建议您查看这些类中构建的支持异步请求的功能()

  • 如前所述,这仍然使用多个线程


  • 通常,Task.Factory.StartNew不会生成新线程,除非向其传递LongRunningFlag。它创建了一个将在线程上调度的任务(默认情况下是线程池线程)。thx,那么为什么异步WebRequest比使用Task.Factory.StartNew更好呢?