¿Cómo esperar a WaitHandle mientras se sirven eventos de WPF Dispatcher?

Alguien me envió un correo electrónico y me preguntó si tengo una versión deWaitOneAndPump para WPF El objetivo es esperar un identificador (similar aWaitHandle.WaitOne) y bombear eventos WPF Dispatcher mientras espera, en el mismo marco de pila.

Realmente no creo que una API como esta deba usarse en ningún código de producción, ya sea para WinForms o WPF (tal vez, además de UI Automation). WPF no expone una versión explícita de WinForms 'DoEvents, que es una muy buena decisión de diseño, dadola parte justa de abuso delDoEvents API ha estado tomando.

Sin embargo, la pregunta en sí es interesante, así que la tomaré como un ejercicio y publicaré lo que se me ocurra como respuesta. Siéntase libre de publicar su propia versión también, si está interesado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta