Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Threading.Thread....
mercoledì 19 gennaio 2005 - 10.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
mer 19 gen 2005 - 10:37
Come posso passare un parametro ad un thread???
Mi spiego faccio partire una serie di Thread che fanno operazioni piuttosto pesanti all'apertura di un determinato form.
Li vorrei lanciare a catena uno dopo l'altro, o meglio vorrei farlo :( , ma non so come passare un parametro che è necessario ad una Sub.
La necessità di lanciare thread(3) è perché devo recuperare molti record e vorrei che l'utente nel frattempo potesse fare anche altro...
il mio thread è questo:
Dim Thr_Special As New Threading.Thread(AddressOf Me.Special(id_tabSpecial))
Mi sottolinea il Me.Special(id_tabSpecial) generando l'errore...
Chiedo venia per l'italiano...
Grazie,
LeonDom
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
mer 19 gen 2005 - 18:16
Nessuno mi dice se si può fare questa cosa?
LeonDom
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 19 gen 2005 - 18:26
Ciao,
una delle domande più famose :)
Io di solito procedo così. Visto che al Thread passi un metodo di un'istanza di una nuova classe, io nella classe creo un parametro apposito che crei e valorizzo prima di lanciare il thread.
Oppure se la funzione che passi al thread è contenuta sempre nella stesa classe allo stesso modo crei un campo private che contenga il parametro.
Nel Framework 2.0 mi pare abbiano risolto questo problema ostico di passaggi parametri al thread.
ciao
david
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
mer 19 gen 2005 - 18:37
Spero di aver capito quello che intendi... questa serà proverò a fare questa cosa, se l'ho capita bene, e poi sicuramente :) domani tornerò a "tormentarti".
Se è famosa la domanda e nel Framework 2.0 hanno risolto questo problema non credo sia tanto facile fare questa cosa...
Seguirò comunque le tue indicazioni.
Grazie 1000,
LeonDom
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
gio 20 gen 2005 - 12:06
Ciao David,
mentre provavo come mi hai consigliato tu ieri, mi è venuta in mente una cosa, se io dichiaro un dataset pubblico e alla fine di ogni thread lo aggiorno ottengo lo stesso risultato, poiché devo lanciarli a catena non dovrei avere problemi, ho provato e per il momento funziona. So che non è una soluzione ottimale ma almeno ho aggirato il problema.
Tento di fare quello che mi hai detto tu ora...
LeonDom
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
gio 20 gen 2005 - 18:16
Ariecchomi David, ho fatto grossomodo come dicevi tu... ed ho capito quello che accade. Ora ho un'altra domanda:
Io gli paso un parametro, se volessi ritornare dei dati da quel thread che lancio???
Mi spiego ad esempio gli lancio come parametro un integer = 90 che è il numero id del dipendente, mi faccio nella funzione la mia bella ricerca ed alla fine ho un dataset con i dati di quel dipendente. Se volessi che la funzione che lancio mi ritorni questo dataset (sempre dal thread lanciato ovviamente)???
E' possibile una cosa del genere???
Ci sto provando ma non riesco...
Grazie ,
LeonDom
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
dom 23 gen 2005 - 10:38
Ti dicevo se riesci a far vedere al tuo thread una variabile interna al modulo non dovresti avere problemi.
Il problema nasce se hai una nuova classe, devi passare dei parametri, insomma è un po' un casino, non è come una Function da cui puoi ritornare semplicemente quello che vuoi.
Esempio se tu riesci ad assegnare al thread come parametro un array e lo modifiche, poi una volta terminato il thread l'array sarà modificato e lo potrai usare altrove.
Attenzione però alla condivisione delle risorse in particolare se hai l'accesso alla stessa risorsa da più threads.
ciao
david
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
lun 24 gen 2005 - 10:28
David,
mi sono imbattuto in una cosa più grossa di me. Ho cercato info su MSDN e sembra che abbia trovato la soluzione, è una cosa parecchio tostarella(perlomeno per me).
Infatti non basta fare una Classe che prenda il parametro (che nel problema alla fine è la cosa più "semplice"), ma avendo bisogno di ritornare una quantità di dati mi sono imbattuto nel problema di ritorno degli stessi dati.
Ho dovuto creare un Evento che puntasse ad un'altra classe restituendo il parametro in output, nel mio caso un dataset.
Questa era solo una prova che volevo fare per avere delle migliorie nel mio programma, il problema ora è come dici tu, bisogna che stia attento a chi accede a quel Thread...
Ti ringrazio moltissimo,
LeonDom
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !