Task的暂停,继续,取消
Posted dangnianxiaoqingxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Task的暂停,继续,取消相关的知识,希望对你有一定的参考价值。
.
CancellationTokenSource tokenSource; CancellationToken token; ManualResetEvent resetEvent; public Form1() { InitializeComponent(); tokenSource = new CancellationTokenSource(); token = tokenSource.Token; resetEvent = new ManualResetEvent(true); button1.Text = "开始"; button2.Text = "暂停"; button3.Text = "继续"; button4.Text = "取消"; } private void button1_Click(object sender, EventArgs e) { int i = 0; Task task = new Task(async () => { while (true) { if (token.IsCancellationRequested) { return; } if (i == 100) { return; } resetEvent.WaitOne(); await Task.Run(() => { i += 1; this.Invoke(new Action(()=> { progressBar1.Value = i; })); Thread.Sleep(50); }); } }, token); task.Start(); } private void button2_Click(object sender, EventArgs e) { resetEvent.Reset(); } private void button3_Click(object sender, EventArgs e) { resetEvent.Set(); } private void button4_Click(object sender, EventArgs e) { tokenSource.Cancel(); } }
以上是关于Task的暂停,继续,取消的主要内容,如果未能解决你的问题,请参考以下文章