积极答复者
为什么我循环调用异步方法,方法的结果却是在所有的异步方法完成后才能返回

问题
-
我想实现这样一个功能:循环异步调用一个方法10次,在每次的完成时候,将返回的结果显示到界面上,我的代码逻辑如下:
for (int i = 0; i < 10; i++)
{
TextBox Message = new TextBox();
Root.Children.Add(Message);
string result = string.Empty;
await ThreadPool.RunAsync(delegate { result = DoSomething(i); });
Message.Text += result;
}其中DoSomething大约执行5秒,我本以为界面上会每隔5秒显示一个结果,但是运行后的结果却是,我等了大约50秒,才看见这10个结果以较短的时间间隔(大约0.5秒)依次呈现出来,而在此前近50秒的等待中,没有任何结果显示。
如何才能做到每个5秒显示一个结果?