Dans this article MSDN (chapitre 6 - Amélioration des performances ASP.NET), il dit le texte suivant:Implémenter un WebMethod ASP.NET uniquement de façon asynchrone si vous pouvez effectuer une parallélisation?
« Évitez les appels asynchrones sauf si vous avez un travail parallèle supplémentaire
Faire des appels asynchrones à partir de votre application Web uniquement lorsque votre application a un travail parallèle supplémentaire à effectuer pendant qu'elle attend la fin des appels asynchrones et que le travail effectué par l'appel asynchrone n'est pas lié à l'UC En interne, les appels asynchrones utilisent un thread de travail du pool de threads; en effet, vous utilisez des threads supplémentaires.
En même temps que vous faites des appels d'E/S asynchrones, comme appeler une méthode Web ou effectuer des opérations de fichiers, le fil qui fait l'appel est libéré afin qu'il puisse effectuer des travaux supplémentaires, comme la fabrication d'autres appels asynchrones ou d'autres tâches parallèles. Vous pouvez ensuite attendre la fin de toutes ces tâches. Faire plusieurs appels asynchrones qui ne sont pas liés à l'UC et les laisser s'exécuter simultanément peut améliorer le débit.
Ceci est confus pour moi. Ma compréhension était que lorsque vous effectuez un appel d'E/S asynchrone qu'aucun thread n'est utilisé en attente, mais qu'un IOCP est défini avec une référence à votre méthode de rappel. Est-il vrai que vous ne devriez utiliser les appels asynchrones que lorsque vous travaillez en parallèle? Ma compréhension était que pour un service Web ASP.NET, il est souvent une bonne idée de changer un WebMethod Foo à BeginFoo/EndFoo lorsque vous appelez une opération liée E/S et mettre en œuvre le tout de manière asynchrone. Est-ce que quelqu'un peut m'aider à comprendre ce que l'on entend par «les appels asynchrones utilisent un thread de travail du pool de threads; en effet, vous utilisez des threads supplémentaires ", et la différence entre WorkerThreads et IO-threads?
J'ai aussi écrit un billet de blog à long (avec exemple de code) sur l'écriture des services WCF async: http://mikehadlow.blogspot.com/2011/ 03/7000-concurrentes-connexions-avec.html –