我有一个长时间运行的任务和两个按钮的winforms应用程序
。
按下“开始”按钮会启动一个带有取消令牌的新任务。如果按下“停止”按钮,则会调用取消令牌的Cancel方法。
我希望在整个过程中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();