Novas threads podem ser iniciadas utilizando a programação de tarefas da Biblioteca em .NET de várias maneiras diferentes.
Primeiro você precisa adicionar o seguinte usando declaração:
using System.Threading.Tasks;
- A maneira mais direta Task.Factory.StartNew(() => {Console.WriteLine(“Hello Task library!”); });
- Usando Ação
Task task = new Task(new Action(PrintMessage));
task.Start();
- Onde PrintMessage é um método:
private void PrintMessage(){Console.WriteLine(“Hello Task library!”);}
- Usando um delegate
Task task = new Task(delegate { PrintMessage(); });task.Start();
- Lambda e método ‘chamado’
Task task = new Task( () => PrintMessage() );
task.Start();
- Lambda e método anônimo
Task task = new Task( () => { PrintMessage(); } );task.Start();
- Usando Task.Run em .NET4.5
public async Task DoWork(){await Task.Run(() => PrintMessage());}
Usando Task.FromResult em .NET4.5 para retornar um resultado de uma Task:public async Task DoWork(){int res = await Task.FromResult<int>(GetSum(4, 5));}private int GetSum(int a, int b){return a + b;}
Você não pode iniciar uma tarefa que já foi concluída. Se você precisa executar a mesma tarefa, você precisará iniciar a mesma novamente.
Faça uma leitura adicional sobre o assunto aqui.
Um grande abraço a todos!