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

jac*_*ack 3 c#

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

public static bool DoSomething(ref bool isCanceling)
{
    while(whileLoopFlag && !isCanceling)
    {
        //doTheThing()
    }
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 7

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