Estoy utilizando ThreadPool.QueueUserWorkItem para reproducir algunos archivos de sonido y no colgar la GUI mientras lo hago..NET ThreadPool QueueUserWorkItem Sincronización
Está funcionando pero tiene un efecto secundario indeseable.
Mientras QueueUserWorkItem CallBack Proc se está ejecutando, no hay nada que impida que comience un nuevo hilo. Esto hace que las muestras en los hilos se superpongan.
¿Cómo puedo hacer para que espere a que el hilo que ya se está ejecutando termine de ejecutarse y solo luego ejecute la siguiente solicitud?
EDIT: private object sync = new Object(); lock (sync) { .......do sound here }
esto funciona. juega en los sonidos en orden.
pero algunas muestras se reproducen más de una vez cuando sigo enviando solicitudes de sonido antes de que finalice la reproducción. investigaré.
EDIT: ¿es el anterior resultado de Lock Convoy @Aaronaught mencionado?
posible duplicado ?: http://stackoverflow.com/questions/1902384/make-a-backgroundworker-do-several-operations-sequentially-without-freezing-the-f/1907501#1907501 – Oliver