Estoy tratando de utilizar ThreadPool.RegisterWaitForSingleObject añadir un temporizador para un conjunto de hilos. Creo 9 hilos y trato de darles a cada uno la misma oportunidad de operación ya que en este momento parece haber un poco de hambre pasando solo si los agrego al grupo de subprocesos. También estoy tratando de implementar un evento de reinicio manual ya que quiero que los 9 hilos salgan antes de continuar.La forma correcta para implementar ThreadPool.RegisterWaitForSingleObject
¿Cuál es la mejor manera de asegurar que cada subproceso en el grupo de subprocesos tenga la misma oportunidad de ejecución ya que la función a la que llamo tiene un bucle y parece que cada subproceso (o el que se ejecuta primero) se queda atascado en él y los otros no tienen la oportunidad de correr.
resetEvents = new ManualResetEvent[table_seats];
//Spawn 9 threads
for (int i = 0; i < table_seats; i++)
{
resetEvents[i] = new ManualResetEvent(false);
//AutoResetEvent ev = new AutoResetEvent(false);
RegisteredWaitHandle handle = ThreadPool.RegisterWaitForSingleObject(autoEvent, ObserveSeat, (object)i, 100, false);
}
//wait for threads to exit
WaitHandle.WaitAll(resetEvents);
Sin embargo, no importa si uso resetEvents [] o si parece que ninguno de ellos funciona correctamente. ¿Puedo implementar esto o estoy (probablemente) malinterpretando cómo deberían funcionar?
Gracias, R.
Gracias, no he tenido tiempo de probar esto todavía, pero gracias Brian por la respuesta. – flavour404