我有一个Validator
类,它有一个Validate
函数,这个验证函数循环遍历一堆文件并验证它们。用户可以取消验证过程。
对于取消后台工作者,我需要在Validtor类中引用后台工作器实例(用于取消验证过程)并在其上调用CancellationPending
。
但问题是Validator类不能引用后台worker,因为有时我们同步调用“Validate”函数而Validator类不必知道这一点。
到目前为止,我已尝试用某些标记替换backgroundworker.CancellationPending
支票,例如IsCanceled
似乎不起作用。
答案 0 :(得分:0)
您有两种选择:
Validate
方法进行两次重载。一个是同步的,一个是异步的和可取消的。Validate
方法,以便调用代码负责循环文件(考虑使用yield
的迭代器方法)我选择选项1,因为这是一个较小的变化。