正如标题所说,我调用了一个从数据库开始加载的方法。 如果引发了特定事件,我希望过早退出该方法而不等待它完成加载。
编辑:相关方法在UI线程上运行
答案 0 :(得分:7)
无法(干净地)从该方法外部破坏性地取消方法。
.NET Framework中的取消通常是一种合作模式。这意味着您的事件将请求取消,并且该方法将偶尔检查是否应取消然后彻底退出。
这是通过框架内的CancellationToken
和CancellationTokenSource
类型处理的。有关详细信息,请参阅有关Cancellation on MSDN。
答案 1 :(得分:1)
如果你在UI线程上执行长时间运行的方法,那么几乎没有任何内置的方法可以帮助阻止它。 UI线程也无法监听任何事件(因为它在方法执行时被阻止)。
您可以选择让UI响应和操作取消:
要取消 - 您可以通过终止/关闭执行操作的连接/文件来取消某些操作。请注意,大多数IO操作不保证此操作将立即终止该方法。