我有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");
}