正在创建对值类型字段的引用



我有一个可以从两个不同位置调用的方法(称为loc a和loc B)。在那个方法中,我有一个while循环,只要某个特定的bool为true(称之为running),它就会运行。

棘手的是,如果方法是从loc A调用的,那么bool变量应该引用bool-X。如果它是从loc B调用的,那么bool应该指的是bool-Z。X和Z是在另一个类中定义的,并且是全局可用的。

可以想象,仅仅设置running = locIsA ? GetBoolA : GetBoolB;是不起作用的,因为running是固定的,当程序的另一部分更改A或B时,running不会受到影响。

如何根据条件将running设置为bool-A或bool-B,而不是复制内容?

非常感谢。

一种方法是将Func<bool> amIDoneYet参数传递给方法,该方法可以使用该参数定期查询是否应该终止。然后,您将创建一个类似() => X的委托,用于传递给方法。

然而,您可能需要考虑设计更改是否可以改善情况。例如,如果这用于取消,请考虑实现Task协作取消模式。这是为异步任务实现取消而推荐的标准方法。

最新更新