Oppure

Loading
07/07/10 14:34
growning
Ciao, esporto in excel tramite OLEDB.

Ultimamente ho iniziato ad effettuare l'export utilizzando il backgroundworker, al fine di evitare l'antipatico "blocco" del programma durante la creazione ed il popolamento del file excel.

L'unico problema è che una volta esportato il file, per aprirlo (mentre ho il sw aperto, quando lo chiudo lo apre subito) ci mette una decina di secondi in più rispetto alla medesima esportazione (cioè utilizzando le STESSA procedura) non eseguita col BW.

in pratica quando richiamo ad es. il metodo "ESPORTA_EXCEL" dall'evento DoWork il file lo apre dopo un bel pò, quando richiamo il metodo in qualsiasi altro evento lo apre immediatamente.

googlando ho trovato questa discussione che, essendo abbastanza niubbo e non capendo molto d'inglese, a naso mi sembra c'entrarci qualcosa: add-in-express.com/forum/…

solo che non ho capito come si fa il Join del thread utilizzato dal BW :-|.

Suggerimenti?
aaa
08/07/10 11:27
Il Totem
In effetti è strano. La discussione suggerisce che sia dovuto al fatto che l'istanza dell'applicazione excel non si chiude correttamente quando viene richiamata da un thread separato.
Il metodo Join serve a fermare un thread fino a che un altro thread non ha terminato l'esecuzione. Ad esempio, scrivendo:
A.Join(B)

Se A è il thread principale e B il thread secondario, tutta l'applicazione si fermerà fino a quando B non avrà finito di lavorare, il che mi sembra proprio quello che tu vuoi evitare. Nota bene, l'applicazione si ferma (in attesa), ma non si blocca. Non so come questo possa risolvere il problema.
aaa