Domingo 22 de Diciembre de 2024, 08:28
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
Usando Threading
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Usando Threading (Leído 1457 veces)
Gandalf_malaga7
Miembro MUY activo
Mensajes: 162
Usando Threading
«
en:
Viernes 16 de Diciembre de 2005, 20:25 »
0
Hola colegas
,
me ha surgido un problema.Estoy desarrollando una aplicación en la que tengo una array con 2 elementos,y estos elementos son direcciones de dispositivos a los que tengo que mandar datos.Entonces quiero usar Threading,de forma,que cree un hilo de envío por cada dispositivo:
Código: Text
Thread t1 = new Thread( new ThreadStart(Envio) );
pero no se como se le pasan parámentros a un thread,es decir,lo ideal sería hacer:
Código: Text
Thread t1 = new Thread( new ThreadStart(Envio,direcciones[0]));
Thread t2 = new Thread( new ThreadStart(Envio,direcciones[1]));
no se si lo veis,lo que kiero es poder pasarle a cada Thread la dirección como parametro,de forma que tenga dos hilos,cada uno mandando a una direccion
.
Lo único malo es que no se como pasarle esos parámetros al Thread,he estado buscando y sólo veo como se le pueden pasar funciones,no parametros
.
¿Alguien podría decirme si se puede hacer esto?,
muchas gracias!!!!!!!
Tweet
...Gandalf El Gris,ese era mi nombre;soy Gandalf El Blanco y en los albores de la tempestad vuelvo a vosotros.
Gandalf_malaga7
Miembro MUY activo
Mensajes: 162
Re: Usando Threading
«
Respuesta #1 en:
Lunes 19 de Diciembre de 2005, 11:19 »
0
Hola amigos
,
con un pequeño truco ya he conseguido pasarle los parametros a los Threads
,pero lo que necesito ahora es lo siguiente. No kiero tener que hacer esto:
Código: Text
Thread t1 = new Thread( new ThreadStart(Envio,direcciones[0]));
Thread t2 = new Thread( new ThreadStart(Envio,direcciones[1]));
para cada dispositivo,es decir,si ahora tuviera que mandar a un tercer dispositivo tendría que añadir una tercera línea,no se si me explico
. Lo ideal es tener una variable,NumeroDispositivos y poder hacer lo siguiente:
Código: Text
for (int i=0;i<NumeroDispositivos;i++)
{
direccion=mac[i];
Thread i.ToString() = new Thread(new ThreadStart(Envio,direccion);
}
entendeis a q me refiero,lo que kiero es que solo modificando la variable NumeroDispsitivos pueda mandar al numero que kiera sin andar añadiendo lineas de código.
De hecho os traslado esta misma duda al ámbito de las clases:
imaginaos que tenemos una clase Coche,con todas sus propiedades y metodos,y ahora queremos crear 'N' del tirón,es posible hacer:
Código: Text
for (int i=0;i<N;i++)
{
Coche i.ToString() = new Coche();
}
y crear ´N`coches,que en este caso tendría como identificador 0,1,2..,N(pero considerados string),es decir si hay un metodo arrancarCoche,se accedería desde el primer coche como:
0.arrancarCoche
no se si sabeis a lo que me refiero,pero tiene que haber una forma de hacer esto,
bueno,espero vuestra ayuda,es muy importante para mi poder solucionar esto,
gracias y salu2!!!!!!!
...Gandalf El Gris,ese era mi nombre;soy Gandalf El Blanco y en los albores de la tempestad vuelvo a vosotros.
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Usando Threading
«
Respuesta #2 en:
Lunes 19 de Diciembre de 2005, 16:42 »
0
no entendi muy bien que es lo que pretendes, oero... y si usas una variable externa al metodo del thread? te funcionaria?.. mmm creo que no
La otra evz tenia ese problema y no lo solucione como tu necesitas, lo hice con una variable de la lase.. pero ent un caso... no se que hacer.
averiguaste en MSDN.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
Gandalf_malaga7
Miembro MUY activo
Mensajes: 162
Re: Usando Threading
«
Respuesta #3 en:
Lunes 19 de Diciembre de 2005, 19:09 »
0
Que tal Juank,gracias como siempre por responder,
lo de pasar el parametro a un Thread ya lo he solucionado con una variable de la clase,como tu has comentado.Ahora kiero hacer lo siguiente:
Imagina que tengo una clase como esta:
Código: Text
class Mensaje
{
public string mac;
public void EnvioSimple()
{
//Lo q sea
}
}
ahora kiero hacer lo siguiente:
Código: Text
Mensaje[] m;
ThreadStart[] ts;
Thread[] t;
m = new EnvMsj[numDisp];
ts = new ThreadStart[numDisp];
t = new Thread[numDisp];
for (int i = 0;i<numDisp;i++)
{
m[i].mac = direccion[i];
ts[i] = new ThreadStart(m[i].EnvioSimple);
t[i] = new Thread(ts[i]);
t[i].Start();
}
no se si lo vez,kiero crear un array de objetos Mensaje,para poder asignarles su direccion con un bucle For.Lo mismo kiero hacer con los Threads,kiero crear un array de objetos Thread para poder iniciarlos desde el For,de forma que si modifico la variable numDisp,y en lugar de enviar a 4 mando a 5 dispositivos no tenga que modificar todo el código.
El problema es que esto me da errores por todos lados,no se como hacerlo,
ayuda por favooooooooooooor
...Gandalf El Gris,ese era mi nombre;soy Gandalf El Blanco y en los albores de la tempestad vuelvo a vosotros.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
C#
(Moderador:
ProfesorX
) »
Usando Threading