我有一个 BackgroundWorker
调用一个方法,该方法调用一个方法...并在某处检查 CancellationPending
并想退出 BackgroundWorker
。
有没有一种方法可以直接从那个深度嵌套的方法中做到这一点,或者它是否必须返回到它的调用者,而调用者又会返回到它的调用者......?
最佳答案
您正在使用 BackgroundWorker
这一事实并没有什么特别之处 - 以处理深层嵌套方法调用的相同术语来考虑这一点。
换句话说,不,我没有(不可怕的)方法可以直接这样做。
我能想到的最干净的方法是在您从每个嵌套方法返回后立即在每个级别简单地检查 CancellationPending
(如果 true
,则返回)。
抛出一个特定的异常并在顶层捕获相同的特定异常类型会让你快速退出,但这并不是最佳实践(也就是说,不要使用任何非异常的异常,比如正常的流控制)。
关于c# - 从 BackgroundWorker 调用的方法中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13051134/