Para passar parametros a uma Thread em C# é muito simples.
Basta usar a delagate ParametrizedThreadStart
Vamos seguir um passo a passo para fazer isso então.
1- Você precisa estar familiarizado com criação de threads em C#
para isso, no próprio blog a um outro post que explica como fazer.
2- O método criado que irá executar ao inicializar a thread não deve ter retorno(void) e deve receber como parâmetro apenas uma variável do tipo Object
Exemplo:
static void TrabalharComParametro(Object o){
//uma boa pratica é tratar o tipo de objeto recebido para saber se corresponde com o esperado
//teremos aqui a logica do metodo
}
3- Agora vamos usar nossa Thread parametrizada
//Vamos criar nossa delegate e passar como parametro o nome do metedo que queremos
// que seja executado quando a thread comece
ParametrizedThreadStart operacao = new ParametrizedThreadStart(TrabalharComParametro);
//Agora vamos passar a delegate como parametro para inicialização da thread no momento
// em que instaciamos a thread
Thread minhaThread = new Thread(operacao);
//Agora basta dar um start na thread passando como parametro o objeto e esperar o resultado
minhaThread.Start("String também é objeto, tudo é objeto");
Se nosso método que trabalha recebendo parâmetro tivesse o trabalho de imprimir na tela o que ele recebeu como parâmetro então o texto impresso seria:
String também é objeto, tudo é objeto
Espero que essa dica rápida ajude os navegantes.
terça-feira, 18 de março de 2008
Dica .NET e C# - Passando parametros para Thread em C#
Postado por João Bosco Seixas às 15:17
Marcadores: .NET, C#, Desenvolvimento, Microsoft
Assinar:
Postar comentários (Atom)
3 comentários:
Muuuuito obrigado,
a explicação foi simples e o exemplo perfeito para o que eu queria (aprender e criar um thread, isso em 20 minutos)
Legal, até ai td bem, mais e se eu quiser passar mais de parametro, sem tranformar este único parametro em uma struct ?
há como ?
Muito obrigado, me ajudou muito.
Postar um comentário