我有一个控制台应用程序,工作正常。片段:
// do something
Execute(args, args...)
// check response...
static async Task Execute(args, args...)
{
// do stuff
response = await client.SendEmailAsync(msg);
}
但是,当我将此代码移动到WinForms应用程序时,它会阻止主线程并且永远不会完成。
有没有简单的方法可以解决这个问题?
...谢谢
答案 0 :(得分:0)
我通过更多研究得出结论。 Winforms app在处理异步调用的方式上似乎与控制台应用程序有很大不同。而不是
async Task TaskName()
{
await AsyncMethod
}
这是有用的:
private async Task<T> TaskName(args, args, args...)
{
return await Task<T>.Run(async () =>
{
// code here with await call to async method
});
}