我正在尝试从Kinects加速度计获取数据,但它没有更改通知事件,因此要获取数据,我现在正在使用while循环。有没有办法将AccelerometerGetCurrentReading()方法结果绑定到属性然后使用propertychanged事件或其他什么?
答案 0 :(得分:3)
不确定
使用循环的示例。一个简单的布尔值用于停止循环,布尔值在放置对象时设置。 警告:此代码尚未经过测试!
class AccelerometerReader: INotifyPropertyChanged, IDisposable {
#region Constructor
public AccelerometerReader() {
new Task(ReadAccelerometer).Start();
}
#endregion
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
void FirePropertyChanged(string propertyName) {
var propertyChanged = PropertyChanged;
if (propertyChanged != null) {
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
#region Properties
int _value;
public int Value {
get { return _value; }
set {
if (value != _value) {
_value = value;
FirePropertyChanged("Value");
}
}
}
#endregion
#region Accelerometer reading
bool _stopLoop = false;
void StartReadLoop() {
while (!_stopLoop) {
Value = ReadAccelerometer();
// TODO: Delay a little
}
}
int ReadAccelerometer() {
// TODO: Read from accelerometer...
}
#endregion
#region IDisposable
public void Dispose() {
_stopLoop = true;
// TODO: Add a proper IDisposable implementation
}
#endregion
}