Pregunta

En la aplicación en la que estoy trabajando, he estado tratando de usar SaveFileDialog y OpenFileDialog para su propósito habitual (guardar y abrir archivos).

Sin embargo, la aplicación no puede admitir formularios / diálogos modales sin fallar porque ocurren demasiadas cosas sensibles al tiempo en el hilo que posee la interfaz de usuario.

Reescribir la aplicación para mover esas funciones del hilo propietario de la interfaz de usuario no es práctico en el plazo inmediato. Para finalizar la función en la que he estado trabajando, necesito un sustituto para los dos cuadros de diálogo de archivos, preferiblemente un control que pueda vivir en una forma no modal.

¿Hay algo por ahí que pueda usar que no bloquee el subproceso que posee la interfaz de usuario?

¿Fue útil?

Solución

La única opción existente que conozco es Dialog Workshop.NET , un producto comercial. Tienen un conjunto de diálogos que tienen la opción de no ser modificados (o incrustados directamente en un formulario de Windows en lugar de una ventana separada).

Sin embargo, realmente pienso en tratar de mover tu lógica sensible al tiempo a un hilo separado, en su lugar. Tener un cuadro de diálogo sin modelo podría confundir a los usuarios, ya que no se comportará como se supone que debe comportarse un cuadro de diálogo de archivo. También hay otras consecuencias potenciales de tener una IU no bloqueable.

Otros consejos

  

demasiadas cosas sensibles al tiempo suceden en el hilo que posee la interfaz de usuario.

Ese es tu verdadero problema. .Net tiene un soporte multihilo muy robusto. Te sugiero que muevas estas cosas a otro lado, aunque parezca desagradable. Probablemente sea menos trabajo que volver a implementar los cuadros de diálogo Abrir / Guardar y definitivamente será menos para su aplicación a largo plazo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top