hilos en C# y pda

07/04/2008 - 08:57 por Aitziber | Informe spam
Hola necesito saber como utilizar hilos en una aplicacion de winform para
pda.
Tengo una funcion que escribe en unos label... y quiero que esa funcion sea
un hilo y luego todo el programa que sea el hilo principal.

Como puedo hacerlo??
 

Leer las respuestas

#1 RFOG
07/04/2008 - 12:52 | Informe spam
Hola.

No puedes actualizar directamente los label desde un hilo que no sea el
principal. Lo que tienes que hacer es llamar mediante el método Invoke del
form a un delegado que te hayas creado y que sea el que actualice los label.

private delegate void AddLogDelegate(string s);
private AddLogDelegate m_addLog;
private void AddLog(string s)
{
Invoke(m_addLog, new string[] { s });
}
private void AddLogReal(string s)
{
m_lbLog.Items.Add(s);
m_lbLog.SelectedIndex = m_lbLog.Items.Count - 1;
}

El método AddLog() es llamado desde el hilo, que a su vez llama mediante un
Invoke a AddLogReal que es el que realmente hace el trabajo.

el delegado m_addLog lo inicializo en el constructor de la ficha:

m_addLog=new AddLogDelegate(AddLogReal);

Así me evito estar asignando/borrando delegados todo el tiempo.

Depende de qué hagas, quizás te sea más interesante hacer la llamada
directamente desde el hilo en lugar de utilizar el método AddLog...

"Aitziber" wrote in message
news:
Hola necesito saber como utilizar hilos en una aplicacion de winform para
pda.
Tengo una funcion que escribe en unos label... y quiero que esa funcion
sea un hilo y luego todo el programa que sea el hilo principal.

Como puedo hacerlo??




Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Libros, ciencia ficción y programación
Buena cosa es tener amigos, pero mala el tener necesidad de ellos.

Preguntas similares