Witam.
Próbuję nauczyć się obsługi 'Task'ów' w C#.
Naskrobałem coś takiego:
Queue<Task> queue = new Queue<Task>();
queue.Enqueue(new Task(() =>
{
for (int i = 0; i < 50; i++)
{
richTextBox1.Invoke(new Action(delegate()
{
richTextBox1.Text += i.ToString() + "\n";
richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.ScrollToCaret();
}));
}
}));
queue.Enqueue(new Task(() =>
{
for (int i = 100; i < 150; i++)
{
richTextBox1.Invoke(new Action(delegate()
{
richTextBox1.Text += i.ToString() + "\n";
richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.ScrollToCaret();
}));
}
}));
foreach (Task task in queue)
{
task.Start();
// task.Wait();
}
Program kompiluje się i uruchamia, jednak jeżeli odkomentuje task.Wait() żeby zadania wykonywały się poklei (czekając na zakończenie poprzedniego) program zawiesza się - dlaczego ?