调用异步函数(也正在调用异步函数)是否会在Win Forms中同步阻止UI

时间:2019-09-21 07:50:42

标签: vb.net winforms async-await

我有一个Win窗体,带有用于从用户收集信息的不同控件和上面的一个按钮。在按钮上单击时,我将在保存之前进行不同的验证,最后根据某些条件调用异步函数(如此):

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

0 个答案:

没有答案