TPL
&System.Net
クラスとメソッドの両方で十分な経験を積んだ人がいることを本当に願っています
TPL
現在の一連のアクションの単純な使用の考えとして始まったものは、私のプロジェクトで停止することになりました。
私はまだ.NETで新鮮なので、TPLを使用して深海にまっすぐジャンプします...
Aspxページのsource/content(html)を使用して抽出しようとしましたWebClient
1日に複数のリクエストがあり(通過するのに約20〜30ページ)、ソースコードから特定の値を抽出します...サーバーがリストにある数少ない毎日のタスクの1つにすぎません。
TPLを使用して実装してみて、速度を上げてみました。
Task.Factory.StartNew()
いくつかのWCインスタンスで反復
を試みてみましたが、最初にWCを実行しようとすると、アプリケーションは結果を取得しません。WebClient
これが私の最後の試みです
static void Main(string[] args)
{
EnumForEach<Act>(Execute);
Task.WaitAll();
}
public static void EnumForEach<Mode>(Action<Mode> Exec)
{
foreach (Mode mode in Enum.GetValues(typeof(Mode)))
{
Mode Curr = mode;
Task.Factory.StartNew(() => Exec(Curr) );
}
}
string ResultsDirectory = Environment.CurrentDirectory,
URL = "",
TempSourceDocExcracted ="",
ResultFile="";
enum Act
{
dolar, ValidateTimeOut
}
void Execute(Act Exc)
{
switch (Exc)
{
case Act.dolar:
URL = "http://www.AnyDomainHere.Com";
ResultFile =ResultsDirectory + "\\TempHtm.htm";
TempSourceDocExcracted = IeNgn.AgilityPacDocExtraction(URL).GetElementbyId("Dv_Main").InnerHtml;
File.WriteAllText(ResultFile, TempSourceDocExcracted);
break;
case Act.ValidateTimeOut:
URL = "http://www.AnotherDomainHere.Com";
ResultFile += "\\TempHtm.htm";
TempSourceDocExcracted = IeNgn.AgilityPacDocExtraction(URL).GetElementbyId("Dv_Main").InnerHtml;
File.WriteAllText(ResultFile, TempSourceDocExcracted);
break;
}
//usage of HtmlAgilityPack to extract Values of elements by their attributes/properties
public HtmlAgilityPack.HtmlDocument AgilityPacDocExtraction(string URL)
{
using (WC = new WebClient())
{
WC.Proxy = null;
WC.Encoding = Encoding.GetEncoding("UTF-8");
tmpExtractedPageValue = WC.DownloadString(URL);
retAglPacHtmDoc.LoadHtml(tmpExtractedPageValue);
return retAglPacHtmDoc;
}
}
私は何が間違っているのですか?TPLを使用することは可能ですWebClient
か、それとも別のツールを使用する必要がありますか(IIS 7 / .net4.5を使用できません)?