如何同步调用异步方法?

时间:2019-12-30 00:41:54

标签: c# asp.net asynchronous async-await

所有第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; 

0 个答案:

没有答案