52 messaggi dal 16 dicembre 2004
ho realizzato in VB.NET un'applicazione che compie una operazione lunga (lettura dati da sorgente remota) con un thread separato gestito tramite l'oggetto background worker, senza che l'interfaccia si blocchi in attesa del completamento, e funziona bene.
Era la prima volta che usavo il background worker e no sono stato molto soddisfatto.
ora è nata l'esigenza di leggere dati da diverse sorgenti, ed il loro numero è variabile...
potrei far leggere i dati da una sorgente alla volta, usando sempre lo stesso oggetto background worker, ma ci metterei troppo tempo (parliamo di più di 12 ore!!!)
non posso creare neanche un background worker per ogni sorgente, perchè non conosco a priori quante ne saranno.
quindi avevo pensato creare a runtime n oggetti background worker ed affidare ad ognuno di loro la gestione di un thread di lettura, ma come faccio poi per utilizzare i metodi che gestiscono gli eventi DoWork, ProgressChanged e RunWorkerCompleted ? Non saprei come scrivere la clausola "handles"...
es.
Private Sub XXXXXX_DoWork(ByVal sender As System.Object, ByVal e As DoWorkEventArgs) Handles ??????????.DoWork
al posto dei punti interrogativi " La clausola Handles richiede una variabile WithEvents definita nel tipo che la contiene o in uno dei sui tipi base"...
Potete darmi qualche consiglio?
Grazie in anticipo
52 messaggi dal 16 dicembre 2004
ho risolto agganciando l'evento da codice con l'istruzione AddHandler
176 messaggi dal 04 giugno 2007
Contributi | Blog
Un'alternativa elegante sarebbe stata usare il ParallelFX e creare n Future, uno per ogni file da leggere. In questo modo la lettura parallela dei file sarebbe avvenuta in modo asincrono, ma con la garanzia di essere terminata a sincronizzata nel momento in cui lo UI thread avesse usato la proprieta' Value del Future.

Saluti

--Alessandro
52 messaggi dal 16 dicembre 2004
ormai ho risolto e "codice che funziona non si cambia"
ma darò lo stesso uno sguardo agli argomenti che mi hai consigliato, che tra l'altro non ho mai usato e non conosco, magari per un uso in futuro.
Grazie e ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.