У меня была Win Form с различными элементами управления для сбора информации от пользователя и кнопкой на ней.При нажатии кнопки я выполняю другую проверку перед сохранением и, в конце концов, вызываю асинхронную функцию в зависимости от некоторого условия (например):
button_CLick(object sender,EventArgs e)
{
validations()
if(conditiontrue) Then
Result() // Will this call block UI
else
savinglogic()
end if
}
Private Async Sub Result()
Dim result = Await Show()
If result = String.Empty Or result Is Nothing Then
Return
ElseIf (Await PostAsync(txtData(0).Text, txtData(1).Text, result)) Then
LogChangesForAudit()
Else
Return
End If
End Sub
Private Async Function Show() as Threading.Tasks.Task(of String)
Dim response = await CalltoWebAPIAsynchronouslyAndShowDataToUser()
return UserInputString
End Function
Private Async Function PostAsync(txtData(0).Text, txtData(1).Text, result)) as Threading.Tasks.Task(of Boolean)
Dim flag as Boolean=false
if savingdatafetchedfromSHow() then
flag=true
End if
return flag
End Function