在我们的一项旧服务中,我发现了这样一段代码(评论是原创的):
long[] tasksCounter = {0}; //boxing for long counters
long[] errorsCounter = {0}; //boxing for long counters
此外,在代码中这些"数组"与Interlocked类一起使用:Interlocked.Increment(ref errorsCounter[0])
,Interlocked.Read(ref errorsCounter[0])
等。
我想知道作者为什么不使用basicaly long tasksCounter, errorsCounter
?
这种方法可能有我不了解的好处吗?
可能值得一提的是变量用于异步lambda。当我将其更改为基本long
时,Resharper插件会警告我"访问修改后的封闭"并建议将其包装在数组中。我发现了几个关于它的问题: