我创建了一个新任务。我在里面一会儿。我想以某种方式阻止它。
Task task;
CancellationTokenSource cts;
private void button1_ClickAsync(object sender, EventArgs e)
{
cts = new CancellationTokenSource();
task = Task.Factory.StartNew(Run2, cts.Token);
}
void Run2()
{
int i = 0;
while (true)
{
i++;
Write(Convert.ToString(i));
// textBox1.Text = Convert.ToString(i);
Thread.Sleep(1000);
}
}
public void Write(string value)
{
if (InvokeRequired)
{
this.Invoke(new Action<string>(Write), new object[] { value });
// return;
}
textBox1.Text = value;
}
private void button2_Click(object sender, EventArgs e)
{
cts.Cancel();
}
}
当我使用“取消”按钮时,我的任务不会停止。我的文本框仍在增加。