Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: kondrag_X1 en 24 Agosto 2016, 08:51 AM

Título: [C#] hilos parametros
Publicado por: kondrag_X1 en 24 Agosto 2016, 08:51 AM
Hola a todos, a ver si alguien me puede echar una mano que estoy un pelin perdido.

Bueno pues el tema es que tengo una clase que lanza un hilo, y como en el programa solo se instanciaba una vez, la variables de la clase se compartian con el hijo mediante el identificador static y no habia ningún problema. Pero ahora necesito instanciar dos objetos y al estar la variables de la clase como static son compartidas por todos los objetos de la aplicacion. Cómo se puede solucionar esto? usando delegados?

:silbar:
Título: Re: [C#] hilos parametros
Publicado por: El Benjo en 24 Agosto 2016, 19:42 PM
Si lo que quieres es que la variable se siga compartiendo con las clases hijo pero que se cree una instancia por cada objeto creado entonces utiliza protected en lugar de static.
Título: Re: [C#] hilos parametros
Publicado por: kondrag_X1 en 25 Agosto 2016, 10:25 AM
No lo que quiero es que cada clase comparta la variable con su hilo, al final haciendo una copia del los parámetros se los paso al hilo y me ha funcionado. Lo malo que si deseo que se modifique desde el hilo tendre que implementar un patron observador para notificar a la clase.

Título: Re: [C#] hilos parametros
Publicado por: El Benjo en 25 Agosto 2016, 20:50 PM
Creo que ya te entendí, déjame resumirlo así:


Si es así, el propio problema te da la solución: Crea una variable privada en la clase cuyo valor sea el de la variable 'x' cuando lanzas el hilo y en el código del hilo trabaja con ella en vez de la variable 'x'.

Te podemos ayudar mejor si compartes el código.
Título: Re: [C#] hilos parametros
Publicado por: kondrag_X1 en 29 Agosto 2016, 15:15 PM

class M
{
public static X;
private Thread mT;
public M()
{
mT = new Thread(startThread);
mt.Start();
}

public void startThread()
{
   // aqui leo la variable
}
}

public Main()
{
M uno = new M();
M dos = new M();
}
[code]

El problema esque ambas clases compartiran la variable statica y si la hago publica protected no se puede modificar por el hilo. No sé si ahora se entenderá un poco mas el problema.
[/code]
Título: Re: [C#] hilos parametros
Publicado por: El Benjo en 29 Agosto 2016, 23:58 PM
Por favor utiliza los términos adecuados para describir el comportamiento de tu código porque 'compartir' significa que será la misma variable para todos los hilos. Decide cual será exactamente el comportamiento de tu aplicación porque sólo puedes tener uno de los dos comportamientos static o private. Otra cosa, no estás mostrando en qué parte se te niega la asignación a la variable.