我有winforms app
一个长时间运行的任务和两个按钮。一键启动,一键停止。
当我按下开始按钮时,一个带有取消令牌的新任务就会启动。如果我按下停止按钮,取消令牌的取消方法就会被调用。
我希望 UI 始终可用,所以我在哪里放置 try, catch 块来完成这项工作。在我看到的所有例子中,他们都把它放在 t.Wait();
但是,如果我这样做,UI 会冻结,这就是我首先使用 Task 的原因,以便在执行任务时继续使用 ui。那么在不使用 Task.Wait 的情况下将 try catch 块放在哪里。
开始按钮:
tokenSource2 = new CancellationTokenSource();
ct = tokenSource2.Token;
t = new Task(doStart, ct);
t.Start();
停止按钮:
tokenSource2.Cancel();