Threads y Windows.foms

05/04/2005 - 13:53 por Black_angel | Informe spam
Hola a todos,

estoy desarrollando una aplicación que utiliza varios Threads.
Tiene un formulario cuyas variables tienen que ser modificados por algunos
Threads:

public class IU_Principal
{
private System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.MainMenu mainMenu1;


public void Anadir(string nombre)
{

System.Windows.Forms.TreeNode tn=
this.treeView1.Nodes[1].Nodes.Add(nombre);

}
}

La función Añadir añade el nombre que se le pasa como parámetro al TreeView.
Esta función es llamada por un Thread que hace lo siguiente:
Hay una clase "GestorCliente" que tiene entre sus variables la interfaz
principal:
class GestorCliente
{
private IU_Principal interfazform;


public void AnadirDesdeThread(string nombre)
{
//Llama al método "Añadir" del formulario principal
interfazform.Anadir(nombre);
//Añade el nombre en otra lista a parte... (esto no tiene importancia)
lista.Add(nombre);
}
}

El Thread lo que hace es escuchar mensajes y los tiene que añadir al
TreeView del formulario:
public void ProcedimientoDelThread()
{
string mensaje;
while(true)
{
//Recibimos mensajes que se quedarán en la variable "mensaje"
...
//Una vez tengamos el mensaje lo tenemos que añadir al formulario
//para eso llamamos al gestor, cuya variable tenemos y se llama "ges"
ges.AñadirDesdeThread(mensaje);
}
}


Al intentar asignar valores al TreeView nos devuelve un error que nos dice
que estamos utilizando un proceso no adecuado, que utilicemos BeginInvoke.
He mirado por Internet acerca de BeginInvoke y la utilización de delegados
pero no entiendo muy bien su funcionamiento ni en qué clase tendría que
declararlos y llamarlos.

Si alguien sabe acerca del tema le estaría muy agradecido por responder.
Un saludo a todos y gracias de antemano.

Black_angel.
 

Leer las respuestas

#1 Anonimo
05/04/2005 - 21:08 | Informe spam
Puedes realizar mayor aportación de código ?


Mostrar la cita
Threads.
Mostrar la cita
modificados por algunos
Mostrar la cita
parà¡metro al TreeView.
Mostrar la cita
siguiente:
Mostrar la cita
variables la interfaz
Mostrar la cita
principal
Mostrar la cita
tiene importancia)
Mostrar la cita
que aà±adir al
Mostrar la cita
variable "mensaje"
Mostrar la cita
aà±adir al formulario
Mostrar la cita
tenemos y se llama "ges"
Mostrar la cita
error que nos dice
Mostrar la cita
utilicemos BeginInvoke.
Mostrar la cita
utilización de delegados
Mostrar la cita
clase tendrà­a que
Mostrar la cita
por responder.
Mostrar la cita

Preguntas similares