2012-06-11 16 views
5

Tengo una aplicación C# .NET 3.5 con un navegador web incorporado. El navegador está diseñado para apuntar a sitios remotos (en lugar de local). Todo funciona bien, pero cuando la página responde lentamente, esto hace que toda la aplicación deje de responder hasta que se carga la página.WebBrowser Control hace que toda la aplicación deje de responder

No me importa que el navegador no responda mientras hace lo suyo, pero la aplicación también está lejos de ser ideal.

¿Hay una buena manera de evitar esto? ¿Sería beneficioso ejecutar WebBrowser en un hilo separado? ¿Eso está un poco más allá de mi perfil en este momento y no creo que al control WebBrowser realmente le guste el multihilo? Pero puedo aprender si es necesario.

+0

¿Ha comprobado su registro de errores? Puede haber una pista de por qué su aplicación deja de responder. Es difícil diagnosticar su problema con tan poca información. – Eric

+0

@autumyst No creo que haya ningún problema como tal. Solo se cuelga brevemente mientras se carga el sitio web lento. Cuando esto sucede, Windows 7 (por ejemplo) le da al usuario la opción Esperar o al final la tarea que no se ve muy bien. – Dan

+0

Una pregunta importante: ¿por qué estás usando el control WebBrowser? ¿Que estás tratando de hacer? Es un control muy engorroso, y dependiendo de sus necesidades, podría haber una mejor manera. – riwalk

Respuesta

2

Véase la respuesta # 2 en esta pregunta por una solución en la forma de ejecutarlo en un hilo separado: BackgroundWorker and WebBrowser Control

Es lo mismo que leer la respuesta # 1 también se explican los comportamientos que están viendo (control WebBrowser bloqueando la interfaz de usuario thead).

+0

Gracias, echaré un vistazo a esto – Dan

+0

Aceptando porque esta es la respuesta correcta aunque no necesité usarlo al final – Dan

0

Da la casualidad que descubrí que la causa principal de esto era que mi aplicación se ejecutaba como administrador. Exactamente el mismo problema se observó al usar Internet Explorer; como tal, simplemente reescribí los bits que requerían privilegios de administrador, por lo que ahora ya no veo el problema original.

Cuestiones relacionadas