J'ai lu quelques async
articles ici : http://www.asp.net/web-forms/tutorials/aspnet-45/using-asynchronous-methods-in-aspnet-45 et l'auteur dit :
Lorsque vous effectuez un travail asynchrone, vous n'utilisez pas toujours un thread. Par exemple, lorsque vous faites une demande de service web asynchrone, ASP.NET n'utilisera pas de threads entre l'appel de la méthode asynchrone et l'attente.
Donc ce que j'essaie de comprendre c'est, comment devient-il async
si nous n'utilisons pas de Threads pour l'exécution simultanée ? Que signifie "on n'utilise pas toujours un thread" ?
Laissez-moi d'abord vous expliquer ce que je sais du travail avec les threads (un exemple rapide, bien sûr les threads peuvent être utilisés dans différentes situations autres que l'interface utilisateur et la méthodologie du travailleur ici)
- Vous avez le fil de l'interface utilisateur pour prendre les entrées et donner les sorties.
- Vous pouvez gérer les choses dans le Thread UI mais cela rend l'UI non réactive.
- Supposons que nous ayons une opération liée au flux et que nous devions télécharger des données.
- Et nous permettons également aux utilisateurs de faire d'autres choses pendant le téléchargement.
- Nous créons un nouveau fil de travail qui télécharge le fichier et modifie la barre de progression.
- Une fois que c'est fait, il n'y a plus rien à faire et le fil est tué.
- Nous reprenons le fil de l'UI.
Nous pouvons soit attendre le worker thread dans le UI thread en fonction de la situation, mais avant cela, pendant que le fichier est téléchargé, nous pouvons faire d'autres choses avec le UI thread et ensuite attendre le worker thread.
N'est-ce pas la même chose pour async
la programmation ? Si non, quelle est la différence ? J'ai lu que async
utilisations de la programmation ThreadPool
pour en tirer des fils.