lm412742171 2014-02-19 03:44
浏览 803

有大师帮我分析下这个类的作用吗?System.Runtime.Caching.SafeBitVector32

有大师帮忙分析下这个类吗?我看出是一个索引,但是具体功能和作用还是没有完全吃透,有人能帮帮忙吗?

internal struct SafeBitVector32
{
    private volatile int _data;
    internal bool this[int bit]
    {
        get
        {
            int data = this._data;
            return (data & bit) == bit;
        }
        set
        {
            int data;
            int num;
            do
            {
                data = this._data;
                int value2;
                if (value)
                {
                    value2 = (data | bit);
                }
                else
                {
                    value2 = (data & ~bit);
                }
                num = Interlocked.CompareExchange(ref this._data, value2, data);
            }
            while (num != data);
        }
    }
    internal bool ChangeValue(int bit, bool value)
    {
        while (true)
        {
            int data = this._data;
            int num;
            if (value)
            {
                num = (data | bit);
            }
            else
            {
                num = (data & ~bit);
            }
            if (data == num)
            {
                break;
            }
            int num2 = Interlocked.CompareExchange(ref this._data, num, data);
            if (num2 == data)
            {
                return true;
            }
        }
        return false;
    }
}

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?