将相同的事件处理程序分配给Accelerometer对象会发生什么? WP7

时间:2011-12-24 15:50:17

标签: c# windows-phone-7 accelerometer

我的应用中有一个页面,我需要使用加速计读数。所以,我有一个类型acc的变量Accelerometer,它对应于页面的类是静态的,我在类的构造函数中有以下语句

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

Acc_Reader通过接收加速度计读数来更新变量。 我需要能够在后台运行加速度计的情况下导航到其他页面。但是,当我回到此页面时,由Acc_Reader更新的变量开始以大约应更新速率的两倍更新。只要您不导航到其他页面并返回此页面,它就可以正常工作。所以,我猜它与这个类的构造函数(因为它再次被调用)有关,它包含上面的代码。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在初始化之前处置acc变量有效。即

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

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