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