Вызывает ли асинхронная функция (которая также вызывает асинхронную функцию) синхронно блокирует пользовательский интерфейс в Win Forms - PullRequest
0 голосов
/ 21 сентября 2019

У меня была 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...