联锁.增量不与我的Get变量名一起工作



我有WPF应用程序和我的工作method在不同的线程中播放我的文件

这是我的Global变量更新我的UI:

public static int _totalFilesSent;

现在,因为我在我的模型中实现INotifyPropertyChanged,我也有这个:

public static int TotalFilesSent
{
    get { return _totalFilesSent; }
    set
    {
        _totalFilesSent = value;
        OnStaticlPropertyChanged("TotalFilesSent");
    }
}

(我没有添加事件函数,因为这与这里无关)。

所以每次我更新我的Global variable这样:

Interlocked.Increment(ref _totalFilesSent );

现在,因为我需要用我的INotifyPropertyChanged事件更新我的UI,我需要使用TotalFilesSent而不是_totalFilesSent,但这样我得到了这个编译错误:

属性、索引器或动态成员访问不能作为对象传递输出或引用参数

这是什么意思,我怎么解决它

您可以在调用Interlocked.Increment:

之后轻松引发StaticPropertyChanged事件。
private static int _totalFilesSent;
public static int TotalFilesSent
{
    get { return _totalFilesSent; }
}
public static void IncrementTotalFilesSent()
{
    Interlocked.Increment(ref _totalFilesSent);
    OnStaticPropertyChanged("TotalFilesSent");
}

相关内容

  • 没有找到相关文章

最新更新