Interlocked.Increment无法使用我的Get变量名称

时间:2015-07-13 13:57:01

标签: wpf multithreading inotifypropertychanged

我有WPF个应用程序,我的工作method在不同的帖子中播放我的文件

这是我更新Global的{​​{1}}变量:

UI

现在因为我在我的模型中实现了public static int _totalFilesSent; 我还有这个:

INotifyPropertyChanged

(我没有添加事件功能,因为这里不相关)。

所以每当我以这种方式更新我的public static int TotalFilesSent { get { return _totalFilesSent; } set { _totalFilesSent = value; OnStaticlPropertyChanged("TotalFilesSent"); } } 时:

Global variable

现在因为我需要使用Interlocked.Increment(ref _totalFilesSent ); 事件更新我的UI,我需要使用INotifyPropertyChanged而不是TotalFilesSent,但是这样我得到了这个编译错误:< / p>

  

属性,索引器或动态成员访问权限不能作为传递   out或ref参数。

这是什么意思,我怎样才能解决它?

1 个答案:

答案 0 :(得分:3)

您可以在致电StaticPropertyChanged后轻松举起Interlocked.Increment事件:

private static int _totalFilesSent;

public static int TotalFilesSent
{
    get { return _totalFilesSent; }
}

public static void IncrementTotalFilesSent()
{
    Interlocked.Increment(ref _totalFilesSent);
    OnStaticPropertyChanged("TotalFilesSent");
}