0
我的方法返回StringBuilder
並通過List<string>
URL。 我相信父母會等到孩子完成。StringBuilder不嵌入嵌套Task.Factory
但是看起來這種方法在完成之前就退出了,因爲調用者彈出了一個Messagebox
,我的Debug.WriteLine(count)
;仍然在調試窗口中計數。
我的主要問題是:
結果StringBuilder
對象沒有像循環後應該附加的那樣多。 StringBuilder
是否可能通過使用Task
重置?
int count = 1;
StringBuilder result = new StringBuilder();
var parent = Task.Factory.StartNew(() =>
{
foreach (string url in pURI)
{
try
{
var child = Task.Factory.StartNew(() =>
{
using (HttpClient client = new HttpClient())
{
result.Append(client.GetStringAsync(url).Result.ToLower());
Debug.WriteLine(count);
count++;
}
}, TaskCreationOptions.AttachedToParent);
}
catch (Exception cancelException)
{
MessageBox.Show(cancelException.Message);
}
Debug.WriteLine(url.ToString());
}
});
parent.Wait();
return result;
請舉例說明如何使用我的代碼鎖定 – Mike
添加示例代碼。 –
我決定去另一條路線。我會發布我的解決方案。 – Mike