En C #, y a-t-il une différence entre l'utilisation d'un délégué pour effectuer un travail de manière asynchrone (appel de BeginInvoke ()) et l'utilisation d'un thread ThreadPool comme indiqué ci-dessous
public void asynchronousWork(object num)
{
//asynchronous work to be done
Console.WriteLine(num);
}
public void test()
{
Action<object> myCustomDelegate = this.asynchronousWork;
int x = 7;
//Using Delegate
myCustomDelegate.BeginInvoke(7, null, null);
//Using Threadpool
ThreadPool.QueueUserWorkItem(new WaitCallback(asynchronousWork), 7);
Thread.Sleep(2000);
}
Éditer:
BeginInvoke s'assure qu'un thread du pool de threads est utilisé pour exécuter le code asynchrone, donc y a-t-il une différence?