【发布时间】:2014-11-23 06:16:58
【问题描述】:
private async void btnLoadFile_Click(object sender, EventArgs e)
{
if(AccountsFile.ShowDialog()==DialogResult.OK)
{
Accounts = File.ReadAllLines(AccountsFile.FileName);
foreach(string str in Accounts)
{
await LoadAccount(str);
}
}
}
我遇到了一个问题,我知道异步编程是如何工作的,它会等待任务完成,但 LoadAccount() 永远不会完成,因为它调用了一个带有永无止境的 while 循环的函数,所以它不会到达Accounts 中的下一个字符串。
我不知道从哪里开始解决这个问题。有什么解决办法吗?
【问题讨论】:
-
函数永远不会结束,而循环听起来像是一个你应该开始的问题。
-
永无止境的while循环对我的程序很重要。
-
比寻找Fire and forget:调用你的方法,但不要等待它。
标签: c# asynchronous foreach while-loop async-await