手动中断运行功能或过程

时间:2013-08-22 14:54:26

标签: c#

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

谢谢,安德鲁。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:-1)

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

无论如何,你应该在杀死它之前控制你的过程,这样它会更安全。

希望有所帮助!

答案 2 :(得分:-1)

您应该使用线程BackgroundWorkerTask parallel library并行运行您的函数。

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