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
Problema con thread
mercoledì 13 giugno 2007 - 15.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
DirkPittZ1000
Profilo
| Newbie
1
messaggi | Data Invio:
mer 13 giu 2007 - 15:53
Ho risolto!
Dunque:
bisogna creare un delegato per il metodo che deve scrivere nella text box
delegate void SetTextCallback(string text);
E poi implementare il metodo per settare il testo in questo modo.
private void WriteVisualLog(string text)
{
if (txLog.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(WriteVisualLog);
this.Invoke(d, new object[] { text });
}
else
{
txLogSQLtoORA.Text = text + "\r\n" + txLogSQLtoORA.Text; ;
}
}
E quinid nell'evento richiamarlo semplicemente così:
void sto_DataWrite(string descr)
{
WriteVisualLog(descr);
}
Ciao!
------- PRIMO POST -----------------------------------------------------------------------------------------------------------------------------------------
Ciao!
Ho un'applicazione windows form che nel costruttore del form principale (formMain) crea un thread e comincia a eseguire in background alcune operazioni.
SQLtoORA sto = new SQLtoORA(applicationLog);
sto.DataWrite += new SQLtoORA.onDataWriteHandler(sto_DataWrite);
wrkSTO = new Thread(new ThreadStart(sto.Start));
wrkSTO.Start();
Il thread solleva degli eventi che vengono catturati dal formMain (DataWrite).
La seguente è la gestione da parte di formMain dell'evento DataWrite:
void sto_DataWrite(string descr)
{
txLogSQLtoORA.Text = descr;
}
All'esecuzione dell'assegnazione del testo mi viene sollevata la seguente eccezione:
System.InvalidOperationException: Operazione cross-thread non valida: è stato eseguito l'accesso al controllo 'txLogORAtoSQL' da un thread diverso da quello da cui è stata eseguita la creazione.
Avevo capito che il codice dell'evento sto_DataWrite veniva eseguito dal formMain, non dal thread...
Come posso ovviare a questo problema??
grazie in anticipo!
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 !