在 Task.Run 中调用异步函数

Calling an async function in Task.Run

我使用了一个等待表格,里面有一个动画 gif。 我发现用 gif 动画“移动”显示此表单的唯一方法是:

frmWaiting.Show()
Await Task.Run(Sub() AnyKindOfActionInASub)
frmWaiting.Close()

它运行良好,但是如果我需要调用一个异步函数 returning 一个对象而不是一个简单的子函数怎么办?如果我这样做:

Dim TwitterAccountToAdd As TwitterAccount
frmWaiting.Show()
TwitterAccountToAdd = Await nsTweetInvi.CallTwitterApi.GetApiTwitterDatasAccount(Me.txtTwitterId.Text)
frmWaiting.Close()

动画 gif 替换为白色方块。

考虑到 GetApiTwitterDatasAccount return 一个 Task(Of TwitterAccount),我该怎么做?

听从 Jimi 的建议,我找到了一个完美的解决方案。

Private TwitterAccountToAdd As New TwitterAccount
Dim strTwitterId As String = Me.txtTwitterId.Text
Dim frmWaitingTwitter As New frmWaiting
Me.TopMost = False
With frmWaitingTwitter
     .TopMost = True
     .Show()
     .StartPosition = FormStartPosition.CenterScreen
End With
TwitterAccountToAdd = Await Task.Run(Function() CheckAndGetTwitterAccount(strTwitterId))
frmWaitingTwitter.Close()
Me.TopMost = True