将相同的事件处理程序分配给加速度计对象时会发生什么?WP7



我有一个页面在我的应用程序,我需要采取加速度计读数。因此,我有一个类型为Accelerometer的变量acc它是与页面对应的类的静态变量并且在类

的构造函数中有以下语句
acc = new Accelerometer();
acc.Start();
acc.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(Acc_Reader);

Acc_Reader通过接收加速度计读数来更新变量。我需要能够导航到其他页面与加速度计在后台运行。但是,当我回到这一页时,由Acc_Reader更新的变量开始以应该更新的两倍的速度更新。它工作得很好,只要你不导航到其他页面,回到这个页面。所以,我猜它与这个类的构造函数有关(因为它会被再次调用),它包含了上面的代码。

我该如何解决这个问题?

在初始化acc变量之前处理它可以工作。例如

if (acc != null) acc.Dispose();
acc = new Accelerometer();
acc.Start();
acc.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(Acc_Reader);

所以,我认为这样你就可以在创建一个新实例之前清理已经运行的实例

最新更新