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