您只需await
调用您的方法,然后在它完成后使用应该运行的代码。您不需要手动注册事件处理程序。
var succeeded = await SaveImage();
// Because of the "await" keyword in the above line, the current method
// will not continue until "SaveImage" has completed its async work and
// signaled its Task
if (succeeded) { ... }
当然,由于上面的代码使用了await
关键字,所以需要将它放在一个也标记为 的方法中async
。如果该方法需要向其调用者发出完成信号,那么它也应该返回一个Task
or Task<T>
; 例如:
private async Task<string> MyHelperMethod() {
var succeeded = await SaveImage();
if (succeeded)
return "Success";
else
return "Failure";
}
// then, in some other method:
var message = await MyHelperMethod();
或者,如果调用的方法SaveImage
是行尾——比如说它是 a 事件的处理程序Button
——Click
那么它可以是async void
:
private async void ButtonClick(object sender, EventArgs args) {
var succeeded = await SaveImage();
if (succeeded) { ... }
}