c#等待异步操作完成
本文关键字:异步操作 等待 | 更新日期: 2023-09-27 17:54:36
我想知道我想做的最好的方法是什么。我的应用程序有一个按钮,可以启动后台下载操作,然后根据下载的文件执行一些操作。
这就像"一旦下载了必要的数据,游戏将很快开始"的情况,在这种情况下,用户可能仍然使用主表单。
private void btnStart_Click(object sender, EventArgs e)
{
//execute some code
Downloader.RunWorkerAsync(files); //this worker reports progress to the main form
while (Downloader.IsBusy)
Application.DoEvents();
//execute some more code
}
我知道那样做一点也不好。
我不能同步执行下载代码,因为主表单需要在下载操作期间保持响应。我也不能将最终代码放入下载完成事件中,因为它被程序的许多其他区域使用,并且必须保持为"通用"下载系统。
那么,有没有办法做我想做的事呢?我没有其他异步方法的任何经验。
如果使用BackgrounWorker
,必须正确配置。BW有RunWorkerCompleted
事件,您必须订阅该事件来处理异步工作的完成。
我认为你应该使用。net 4.5框架(await
和async
)的异步编程特性。
指异步编程