0

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

谢谢,安德鲁。

4

3 回答 3

3

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

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

于 2013-08-22T14:56:45.133 回答
-1

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

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

希望有帮助!

于 2013-08-22T14:57:52.067 回答
-1

您应该使用线程、BackgroundWorkerTask 并行库并行运行您的函数。

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

于 2013-08-22T15:02:05.687 回答