Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net] esportazione in excel
Forum - C# / VB.NET - [vb.net] esportazione in excel

Avatar
growning (Normal User)
Rookie


Messaggi: 22
Iscritto: 17/06/2009

Segnala al moderatore
Postato alle 16:34
Mercoledì, 07/07/2010
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: http://www.add-in-express.com/forum/read.php?FID=5&TID=201 ...

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

Suggerimenti?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:27
Giovedì, 08/07/2010
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:
Codice sorgente - presumibilmente Plain Text

  1. 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.

PM Quote