Abaixo segue um exemplo de como trabalhar com Thread deste modo.
using System;
using System.Threading;
namespace MeuNameSpace
{
public class MinhaThread
{
#region Constructor
public MinhaThread(int maxLoops, string description)
{
this.MaxLoops = maxLoops;
this.Description = description;
}
#endregion
#region Attributes
private Thread threadExec;
#endregion
#region Properties
public int MaxLoops { get; private set; }
public string Description { get; private set; }
public ThreadState State
{
get
{
return this.threadExec.State;
}
}
#endregion
#region Methods
public void Start()
{
this.ThreadExec = new Thread(Run);
this.ThreadExec.Start();
}
private void Run()
{
for (int i = 0; i < this.MaxLoops; i++)
{
Console.WriteLine(this.Description);
}
}
#endregion
}
[STAThread()]
public class Program
{
public static void Main()
{
MinhaThread minhaThread = new MinhaThread(30, "Tem que escrever isto");
minhaThread.Start();
while (minhaThread.State == ThreadState.Running)
{
Console.WriteLine("Thread Ainda não terminou, então vamos esperar mais um pouquinho");
Thread.Sleep(5);
}
Console.WriteLine("Agora a Thread terminou, você viu que executamos ela e não tivemos nem acesso ao método e nem a ela.");
Console.WriteLine("Apenas instanciamos a classe dela, passamos os parâmetros necessários e mandamos executar, sem saber como isto é feito");
}
}
}
E isto é tudo pessoal
Nenhum comentário:
Postar um comentário