2
Я новичок в параллелизме C# и пробовал базовое приложение с двумя кнопками, первый щелчок на кнопке должен запускать метод, который проходит через цикл цикла и следующий щелчок кнопки, даже должен отменитьTask.Factory.StartNew не вызывает метод
Task t;
CancellationTokenSource tokenSource = new CancellationTokenSource();
bool cancelPressed = false;
private void button1_Click(object sender, EventArgs e)
{
var tasks = new ConcurrentBag<Task>();
var token = tokenSource.Token;
t = Task.Factory.StartNew(() => Count(token), token);
if (cancelPressed)
{
tokenSource.Cancel();
}
tasks.Add(t);
Task.WaitAll(tasks.ToArray());
}
private void Count(CancellationToken token)
{
for (int a = Int32.MinValue; a < Int32.MinValue; a++)
{
textBox1.Text = a.ToString();
if (token.IsCancellationRequested)
break;
}
}
private void button2_Click(object sender, EventArgs e)
{
cancelPressed = true;
}
, но это Count()
не уволен. Что здесь не так?