J'ai récemment read this thread on MSDN. Donc, je pensais utiliser une expression lambda comme un moyen d'appeler EndInvoke juste comme un moyen de s'assurer que tout est bien rangé. Lequel serait le plus correct?La bonne façon de terminer un BeginInvoke?
exemple 1:
Action<int> method = DoSomething;
method.BeginInvoke(5, (a)=>{method.EndInvoke(a);}, null);
Exemple 2:
Action<int> method = DoSomething;
method.BeginInvoke(5, (a)=>
{
Action<int> m = a.AsyncState as Action<int>;
m.EndInvoke(a);
}, method);
J'ai fait lire cet article, et il semble un peu redondant à utiliser le QueueUserWorkItem si vous pouvez passer un lambda dans l'appel de BeginInvoke. –
QueueUserWorkItem peut fournir d'autres fonctionnalités avancées de gestion de pool de threads en plus d'appeler EndInvoke. Il est préférable d'utiliser cela. – configurator
Cela dépend de ce que vous utilisez pour. Dans l'environnement IIS, l'utilisation de ThreadPool utilise les mêmes threads disponibles pour le traitement des demandes. http://stackoverflow.com/questions/1453283/threadpool-in-iis-context –