我的应用程序是WPf,我们有数据服务。
我想调用异步数据服务任务来做一些工作并在完成后返回。当异步任务正在完成他的工作时,我的客户可以做其他工作。
但是当我想通过for循环调用10个相同的任务时,我想在另一个任务之后执行每个任务但不是并行。此外,我的客户可以继续其他工作,直到所有10个任务完成。
如果我使用task [i] .wait()将不允许我的客户继续其他工作。在完成每项任务之前,客户端无法执行任何其他操作。
答案 0 :(得分:0)
阻止.Wait()
和.Result
之类的通话不会让UI继续
使用async / await,例如在按钮单击事件
中public async void btn_Clicked(object sender, EventArgs args) {
for (int i = 0; i < someParameter; i++) {
await importExportServiceClient.ClientEntryImportExportAsync(ImpExpobj, start, end, chunk);//for running task to finish
}
}
将依次等待每项任务,而不会阻止客户端。允许客户继续其他工作,直到完成所有任务。