Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在.net WPF 中编程。
我有一个(第三方)API,它实现了 Begin/End 异步调用模式。BeginWork() 函数返回一个 IAsyncResult。
但是,一旦完成,没有明显的方法可以取消/中止呼叫。
有没有办法停止这样的工作?如果这需要库作者明确提供取消方法,那么有什么方法可以杀死这项工作,即使是不优雅的?我真的需要能够以某种方式阻止它,因为一项工作可能需要几个小时才能完成!
谢谢!
如果实现不包含允许取消的特定代码,那么您很可能无法取消它。并非所有事情都可以在逻辑上完全取消,尤其是在涉及外部资源的情况下。但是,如果取消它的代码根本没有被编写。.您可以尝试随机杀死线程,但这会破坏您的进程-基本上这与决定中途杀死整个进程相同。它会停止工作,但如果它不是事务性的,它可能会使事情变得一团糟。
如果我是你,我会(其中之一):