Comment attendre une tâche d'une méthode asynchrone, dans une méthode non asynchrone, sans appeler la méthode?Comment appeler la méthode asynchrone de manière asynchrone à partir d'une méthode non asynchrone
Class TestAsync
Dim workevent As New Threading.ManualResetEvent(False)
Sub work()
Dim Task As Task = Test()
'Do Work which affects Test Here
Threading.Thread.Sleep(100)
workevent.Set()
'wait for Test to complete
'Task.Wait() -causes the application to hang
End Sub
Async Function Test() As Task
workevent.WaitOne()
End Function
End Class
Cette fonction est exécutée dans un test unitaire, elle doit donc cesser d'être asynchrone quelque part – user1937198
@ user1937198 Ce n'est pas le cas si votre infrastructure de test unitaire prend en charge 'Async'. Et les versions actuelles de la plupart des frameworks de tests unitaires pour .Net le font. – svick
+1. Les versions actuelles de MSTest, xUnit et NUnit prennent toutes en charge les méthodes de test unitaires 'async' qui retournent' Task'. –