所有第3部分API调用现在都使用Async方法。我不想异步使用它们。我想将它们转换为同步的,因为我不在乎几秒钟,而且似乎无法在此旧版程序中一直执行异步操作。
我只想这样做:
字符串令牌= api.GetTokenAsync()。Result;
但是我看到很多关于Wait()和.Result可能陷入僵局的抱怨!
现在看来这是极其复杂的情况,我想一种非常简单的技术来同步地称呼它。为此必须使用简单的技术,因为在很多情况下,您无论如何都必须等待结果。因此,如果您对UI锁定感到满意,那么使其异步就有点多余了,因为在大多数情况下,客户会一直在等待,因此锁定UI直到完成才可以。
更新,我找到了最佳答案: Task keeps waiting for activation
var task= Task.Run(async () =>
{
return await Api.LoginAsync( tbUsername.Text, tbPassword.Text);
});
_Token = task.Result;