C# - 传入一个可能在其他地方改变的布尔值,但我不想改变方法

时间:2015-04-14 17:19:10

标签: c#

我有一个需要对isCanceling标志做出反应的方法。它应该能够在其他地方更改并在方法中注意到,但我不希望能够在方法中更改布尔值。我在下面的内容中,如果传入的布尔值在其他地方更改,我认为将能够读取bool,但我想确保在此上下文中无法更改isCanceling。这可能吗?

public static bool DoSomething(ref bool isCanceling)
{
    while(whileLoopFlag && !isCanceling)
    {
        //doTheThing()
    }
}

1 个答案:

答案 0 :(得分:7)

使用CancellationTokenSource / CancellationToken允许此方法外部的代码取消它。除了具有一个API,其中一个对象可以通知另一个取消,它将正确地同步底层布尔值,以便可以从多个线程使用这些对象而没有任何问题。