加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-phone-7 – WP7的老化测试

发布时间:2020-12-14 05:35:12 所属栏目:Windows 来源:网络整理
导读:在开发通常在30米或1小时后发生的WP7应用程序时,我遇到了非常奇怪的问题,尽管代码非常简单,几乎与示例相同.模拟器没有任何问题. app崩溃,没有异常被抛出 未处理的异常:{“0xffffffff”}(是的,消息是“0xffffffff”.并且Stacktrace为空) 一旦我获得DateTimeO
在开发通常在30米或1小时后发生的WP7应用程序时,我遇到了非常奇怪的问题,尽管代码非常简单,几乎与示例相同.模拟器没有任何问题.

> app崩溃,没有异常被抛出
>未处理的异常:{“0xffffffff”}(是的,消息是“0xffffffff”.并且Stacktrace为空)
>一旦我获得DateTimeOffset.Now属性(!)时抛出一个异常
> UI线程冻结,无法终止应用程序,不得不重启设备

所以在这一点上我认为WP7真的不稳定或我的设备硬件有问题.

WP7是否存在老化测试?像Memtest86,Prime和其他桌面工具一样?

编辑:这是导致问题的代码:

public partial class MainPage : PhoneApplicationPage
{
    private Accelerometer _accelerometer;
    private GeoCoordinateWatcher _gps;

    public MainPage()
    {
        InitializeComponent();

        _accelerometer = new Accelerometer();
        _accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(_accelerometer_ReadingChanged);
        _accelerometer.Start();

        _gps = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
        _gps.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(_gps_PositionChanged);
        _gps.Start();
    }

    void _gps_PositionChanged(object sender,GeoPositionChangedEventArgs<GeoCoordinate> e)
    {
        Dispatcher.BeginInvoke(() =>
        {
            TBLocation.Text = e.Position.Location.ToString();
        });
    }

    void _accelerometer_ReadingChanged(object sender,AccelerometerReadingEventArgs e)
    {
        Dispatcher.BeginInvoke(() =>
        {
            TBAccelX.Text = string.Format("X: {0:F2} g",e.X);
            TBAccelY.Text = string.Format("Y: {0:F2} g",e.Y);
        });
    }
}
<phone:PhoneApplicationPage 
    x:Class="AccelerometerTest2.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <StackPanel>
        <TextBlock Name="TBAccelX"/>
        <TextBlock Name="TBAccelY"/>
        <TextBlock Name="TBLocation"/>
    </StackPanel>

</phone:PhoneApplicationPage>

编辑:因为我怀疑手机有问题.该应用程序已在另一台设备上正常运行了5个小时.

解决方法

我怀疑是内存(或资源)泄漏.
该应用程序做什么?
使用应用程序时是否发生错误,或者您是否只是离开了?
应用程序在计时器上做了什么吗?
您是否尝试过在应用程序生命周期内监控内存使用情况?

由于使用模拟器在后台进行的其他应用程序和事情较少,因此系统从您的应用程序中回收资源的需求可能要小得多.因此,可能在仿真器上也看不到这些问题.

如果您获得[mango]开发人员工具的最新(测试版),您将能够通过新的内置分析器运行代码,以便随时查看正在发生的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读