私は、位置情報サービスを使用するアプリを開発中です。私がデバッグしている場合、アプリは正常に動作します。私がデバッグせずに起動すると、最初の実行(再構築後)で、ロケーションサービスの使用許可を求めるときにクラッシュします。何が起こるかは、あなたがメッセージボックスの長さ(5〜10秒)を表示して座ってしまうと、クラッシュします。私は再度デバッグせずに起動する場合、それはうまく動作します(メッセージボックスを再度表示しませんが、何らかの理由でそれが条件文の後に次の行に移動するため、 「がt)が再び表示されます。なぜMessageBox.ShowがUnhandledExceptionを引き起こすのですか?
を繰り返しますが、私は、何の問題をデバッグしないのです場合。私は、デバッグなしで起動した場合、それは死ぬ。これは、デバッグのいずれかで構築するかのモードを解除する場合がある。私がコメントする場合
このコードブロックは問題なく実行されます。すぐに[OK]をクリックすると問題なく実行されます。
if (settings.FirstRunLocationPermission)
{
string message = "Do you wish to use location services to see your location on the map? Your location is not being tracked. You can change this authorization in the settings.";
//if (MessageBox.Show(message,"authorization",MessageBoxButton.OKCancel) == MessageBoxResult.OK)
//{
// settings.AllowLocation = true;
//}
settings.FirstRunLocationPermission = false;
}
誰かが私になぜokをチェックする単純なメッセージボックスがこのような問題を引き起こすのかを説明することができれば感謝します。ありがとう!
私はバックグラウンドで実行されているコードとは関係がありますが、それがセッターであるかどうかはわかりません(これはセッターにアクセスする唯一のコードです)。このコードブロックを自分の場所を示すボタンイベントに移動することで解決しました。もともとInitializeComponent()の直後に実行されていたので、UIが完全に描画されていなかったため、そのプロセスの背景にあるものがMessageBoxを妨害したようです。ありがとう! –