我有一个需要对isCanceling标志做出反应的方法。它应该能够在其他地方更改并在方法中注意到,但我不希望能够在方法中更改布尔值。我在下面的内容中,如果传入的布尔值在其他地方更改,我认为将能够读取bool,但我想确保在此上下文中无法更改isCanceling。这可能吗?
public static bool DoSomething(ref bool isCanceling)
{
while(whileLoopFlag && !isCanceling)
{
//doTheThing()
}
}
答案 0 :(得分:7)
使用CancellationTokenSource
/ CancellationToken
允许此方法外部的代码取消它。除了具有一个API,其中一个对象可以通知另一个取消,它将正确地同步底层布尔值,以便可以从多个线程使用这些对象而没有任何问题。