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
ASP.NET 2.0 / 3.5 / 4.0
Prdita di reference con il Multithreading
giovedì 23 aprile 2009 - 13.41
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Leonida
Profilo
| Junior Member
85
messaggi | Data Invio:
gio 23 apr 2009 - 13:41
Ciao a tutti. Sto scrivendo un software che lancia in multithreading un insieme di controller. Il problema è che nonostante memorizzo in un attributo il reference al thread creato, mi da un valore null quando cerco di leggere questo referencedal metodo eseguito dal thread. Posto una porzione di codice:
...
protected virtual void AvviaThread()
{
Stato = true; // imposta il controller sullo stato attivo
if (ThreadAttivo == null) // se non è stato istanziato un oggetto Thread
this.threadAttivo = new Thread(new GateController().AutovetturaSuccessiva); // salva il reference al thread
ThreadAttivo.Start();
}
...
// Richiede l'autovettura successiva e la passa al varco
protected virtual void AutovetturaSuccessiva()
{
Boolean pedaggioPagato = false;
while (true)
{
Motorcar veicolo = new Motorcar(30, true, false, false);//GestoreDelTraffico.VarcoLibero(Varco, Varco.ID, Varco.Num); // RIPRISTINA
if (veicolo == null) // se la coda per il varco è vuota
SospendiThread();
else if ((veicolo != null) && (ThreadAttivo.ThreadState == ThreadState.Suspended)) // se il varco è in attesa di un'autovettura
RipristinaThread();
if (ThreadAttivo.ThreadState == ThreadState.Running) // se il thread è attivo e non sospeso
{
pedaggioPagato = Varco.AutovetturaSuccessiva(veicolo); // passa l'autovettura al varco
if (pedaggioPagato == true) // se il pedaggio è stato pagato
BarraVarco.AlzaBarra(veicolo.TempoAttraversamento); // alza la barra e attendi l'attraversamento del varco
}
}
}
Mi solleva chiaramente un errore di riferimento null al primo riferimento a ThreadAttivo. Potete aiutarmi? Premetto che non ho mai lavorato con i Thread.
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 !