我在.net WPF编程。
我有一个(第三方)API,它实现了Begin / End异步调用模式。 BeginWork()函数返回IAsyncResult。
但是,一旦完成,就没有明显的取消/中止呼叫的方法。
有没有办法让这样的工作停止?如果这需要库作者明确提供取消方法,那么什么是杀死这个工作的方法,甚至是不合理的?我真的需要能够以某种方式阻止它,因为单个工作可能需要数小时才能完成!
谢谢!
答案 0 :(得分:3)
如果实现不包含允许取消的特定代码,那么很可能无法取消。并非一切都可以在逻辑上被彻底取消,特别是如果它涉及外部资源。但是如果取消它的代码还没有编写。 你可以尝试随机杀死线程,但这会让你的过程失败 - 基本上这就像决定在整个过程中途杀死一样。它会停止工作,但如果它不是交易的话,它可能会让事情变得完整。
如果我是你,我会(其中之一):