系统相关
首页 > 系统相关> > c# – Windows Phone Universal应用程序在导航时抛出AccessViolation

c# – Windows Phone Universal应用程序在导航时抛出AccessViolation

作者:互联网

我正在开发Windows Phone 8.1 Universal应用程序并遇到以下问题.

该应用程序有许多视图及其相应的Caliburn.Micro ViewModel,其中两个包含一个MapControl,其引脚绑定到一个Observable MapLocation对象集合.

MapLocation类具有以下内容:

public class MapLocation : PropertyChangedBase
{
    private string _title;
    public string Title
    {
        get { return _title; }
        set
        {
            _title = value; 
            NotifyOfPropertyChange();
        }
    }

    private Geopoint _geoPoint;
    public Geopoint GeoPoint
    {
        get { return _geoPoint; }
        set
        {
            _geoPoint = value; 
            NotifyOfPropertyChange();
        }
    }

    private Uri _imageUri;
    public Uri ImageUri
    {
        get { return _imageUri; }
        set
        {
            _imageUri = value; 
            NotifyOfPropertyChange();
        }
    }

    private bool _isMoving;
    public bool IsMoving
    {
        get { return _isMoving; }
        set
        {
            _isMoving = value; 
            NotifyOfPropertyChange();
        }
    }
    private Windows.Services.Maps.MapAddress _address;
    public Windows.Services.Maps.MapAddress Address
    {
        get { return _address; }
        set
        {
            _address = value;
            NotifyOfPropertyChange();
        }
    }
}

该列表经常通过DispatcherTimer更新,以显示所有项目的更新位置.

我面临的问题是,每次访问页面后,每次访问它至少一次,我得到一个AccessViolation异常,应用程序崩溃.

我猜这可能与我的ViewModel的某种兑现有关.

以前有人见过这种行为吗?

解决方法:

它是一个已知的bug.好像他们正在修理它.
https://social.msdn.microsoft.com/forums/windowsapps/en-us/fde433e8-87f8-4005-ac81-01b12e016986/debugging-access-violation-exceptions

只需在导航前给出延迟

等待Task.Delay(50); //避免访问冲突异常
// Naviagte

我希望这会解决你暂时的目的.

标签:c,xaml,win-universal-app,caliburn-micro
来源: https://codeday.me/bug/20190628/1316928.html