我正在尝试在 Visual Studio 2012 中使用新的 Async/Await 模式实现异步调用。当我设置表单(使用表单设计器)然后尝试使用异步方法作为事件处理程序时,编译器会抱怨函数不返回 void。
该方法应该返回一个任务;这就是重点。我不知道如何告诉表单设计者这不是常规事件处理程序。有人遇到过这个问题吗?我应该停止使用表单设计器进行快速开发吗?
你必须使用一个async void
事件处理程序的方法,而不是async Task
。能够将事件处理程序连接到异步方法就是全部原因async void
被允许。
例如,如果您想使用按钮单击处理程序,您可以这样编写:
private async void button_Click(object sender, EventArgs e)
{
bool success = await CallSomeMethodAsync();
if (success)
{
// Do something here, etc...
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)