2012-06-11 17 views
5

Ho un'applicazione C# .NET 3.5 con un browser Web incorporato. Il browser è progettato per puntare a siti remoti (piuttosto che locali). Funziona tutto bene, ma quando la pagina è lenta a rispondere questo fa sì che la mia intera applicazione non risponda fino a quando la pagina non viene caricata.Controllo WebBrowser fa sì che l'intera applicazione non risponda

Non mi dispiace che il browser non risponda mentre fa la sua cosa, ma l'applicazione che va troppo lontano dall'ideale.

C'è un buon modo per impedirlo? Sarebbe utile eseguire il WebBrowser su un thread separato - questo è un po 'al di là del mio skillset in questo momento e non penso che il controllo WebBrowser piaccia davvero il multithreading? Ma posso imparare se necessario.

+0

Hai controllato il tuo log degli errori? Potrebbe esserci un indizio sul perché la tua applicazione non risponde. È difficile diagnosticare il tuo problema con così poche informazioni. – Eric

+0

@autumyst Non credo ci sia alcun problema in quanto tale. Si blocca solo brevemente mentre il sito lento carica. Quando ciò accade, Windows 7 (ad esempio) offre all'utente l'opzione In attesa o alla fine l'attività che non sembra perfetta. – Dan

+0

Una domanda importante: perché stai utilizzando il controllo WebBrowser? Cosa stai cercando di fare? È un controllo molto macchinoso e, a seconda delle esigenze, potrebbe esserci un modo migliore. – riwalk

risposta

2

vedere la risposta # 2 su questa questione per una soluzione su come eseguirlo su un thread separato: BackgroundWorker and WebBrowser Control

Si potrebbe anche leggere risposta # 1 troppo, si spiegano i comportamenti che state vedendo (controllo WebBrowser bloccando l'interfaccia utente).

+0

Grazie, darò un'occhiata a questo – Dan

+0

Accettando perché questa è la risposta giusta anche se non ho avuto bisogno di usarlo alla fine – Dan

0

In questo caso ho scoperto che la causa principale di questa era la mia applicazione in esecuzione come amministratore. È stato riscontrato esattamente lo stesso problema quando si utilizza Internet Explorer: in quanto tale, ho semplicemente riscritto i bit che richiedevano i privilegi di amministratore, quindi ora non vedo più il problema originale.

Problemi correlati