Je rencontre un problème avec une classe c # que j'ai créée pour tester unitaire mon application, en particulier le problème concerne un objet System.Threading.Tasks.Task.
J'ai une liste de ces objets et je veux les exécuter de manière synchrone.
J'appelle ce qui suit:
myTask.RunSynchronously();
Lorsque je le fais, je reçois toujours l'erreur suivante et je ne sais pas pourquoi je peux le réparer.
System.InvalidOperationException: RunSynchronously ne peut pas être appelé sur une tâche qui a déjà été démarrée.
Quelqu'un a une idée?
Le problème est que vous a commencé la tâche lorsque vous appelez TaskFactory.StartNew
- Je veux dire, c'est même au nom de la méthode que vous démarrez la tâche. StartNew
crée la tâche, puis appelle Start
en votre nom. = D
Si vous le souhaitez, vous pouvez soit Wait
sur la tâche, comme l'a dit @Peter Ritchie, soit créer la tâche manuellement comme ceci:
var task = new Task(() => { ... });
task.RunSynchronously();
C'est déjà commencé, utilisez simplement myTask.Wait()