En C# ¿Hay alguna diferencia entre el uso de un delegado para hacer algún trabajo de forma asíncrona (llamando BeginInvoke()) y el uso de un hilo ThreadPool como se muestra abajoDiferencia entre delegate.BeginInvoke y utilizando hilos ThreadPool en C#
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);
}
Editar:
BeginInvoke se asegura de que un subproceso del grupo de subprocesos se utiliza para ejecutar el código asincrónico, por lo que hay alguna diferencia?
posible duplicado de [¿El Func .BeginInvoke utilizar el ThreadPool?] (Http://stackoverflow.com/questions/3556634/does-funct-begininvoke-use-the-threadpool) –
nothrow
No estoy seguro de si su comentario fue antes de que editara mi pregunta, pero soy consciente de que BeginInvoke ejecuta delegados en los hilos que pertenecen a la lista de temas. Mi pregunta era más sobre si había alguna diferencia entre ejecutar explícitamente el método en un grupo de subprocesos usando QueueUserWorkItem o al usar BeginInvoke – nighthawk457