手动中断运行功能或过程

本文关键字:过程 功能 运行 中断 | 更新日期: 2023-09-27 18:28:42

我遇到过这样一个问题:我的函数需要很长时间才能运行。如果用户错误地运行了该函数,他必须等到函数结束。例如,是否可以通过单击"Escape"来停止功能?在函数运行时,我无法向它发送任何内容。

谢谢,安德鲁。

手动中断运行功能或过程

错误的方法是在单独的线程上运行方法,并在需要时中止该线程。

正确的方法是将一些标记传递给方法,方法本身会不时地检查它,如果标记说它应该返回。您可以使用带有CancellationToken的TPL来做到这一点。

您可以在不同的线程上运行任务,如果用户想完成任务,那么您可以调用thread.Stop()或thread.Artrt()

不管怎样,你应该在杀死它之前控制好你的过程,这样更安全。

希望能有所帮助!

您应该使用线程、BackgroundWorker或Task并行库并行运行函数。

这将允许您保持用户界面的响应并取消后台操作。