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

C#-传入一个可能在其他地方更改的布尔值,但我不';我不想改变方法,c#,C#,我有一个方法需要对isCanceling标志做出反应。它应该可以在其他地方更改并在方法中被注意到,但我不想在方法中更改布尔值。我认为,如果传入的布尔值在其他地方发生了更改,那么我将能够读取布尔值,但我想确保isCanceling不能在这个上下文中更改。可能吗 public static bool DoSomething(ref bool isCanceling) { while(whileLoopFlag && !isCanceling) { //

我有一个方法需要对isCanceling标志做出反应。它应该可以在其他地方更改并在方法中被注意到,但我不想在方法中更改布尔值。我认为,如果传入的布尔值在其他地方发生了更改,那么我将能够读取布尔值,但我想确保isCanceling不能在这个上下文中更改。可能吗

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

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

删除
ref
then?@OmriAharon则外部代码无法取消循环,因为bool将被复制,而不是引用。@Servy哦,我想我完全误解了他的问题:)以下是链接,谢谢。这看起来是个好办法。