Hey Mike, il n'y a aucun moyen public d'accéder à la liste des tâches en attente dans TPL. Le mécanisme qui le rend disponible pour le débogueur repose sur le fait que tous les threads seront gelés au moment de l'énumération, par conséquent il ne peut pas être utilisé au moment de l'exécution.
Oui, il existe un moyen intégré d'être averti lorsqu'une tâche est terminée. Consultez les API Task.ContinueWith. Fondamentalement, cette API crée une nouvelle tâche qui se déclenchera lorsque la tâche cible sera terminée.
Je suppose que vous voulez faire un rapport de comptabilité/progression rapide basé sur ceci, si c'est le cas, je vous recommande d'appeler task.ContinueWith() avec l'indicateur TaskContinuationOptions.ExecuteSynchronously. Lorsque vous spécifiez que l'action de continuation sera exécutée sur le même thread à la fin de la tâche cible (si vous ne le spécifiez pas, la tâche de continuation est mise en file d'attente comme toute autre tâche régulière).
Espérons que cela aide.
Huseyin
Avez-vous besoin d'obtenir un programme, ou est-ce pour le débogage? Si c'est pour le débogage, êtes-vous conscient des nouvelles vues de débogage disponibles pour les tâches? –
Je voudrais l'obtenir par programme. J'ai vu les nouvelles vues de débogage et ce sont de bonnes choses, mais pas ce dont j'ai besoin dans ce cas. –