私はWP7でphotochooserを呼び出すコードを持っています.Picが2Mbを超えると、メッセージボックスをユーザーに表示します。私がこれをやろうとすると、Photochooserタスクがバックグラウンドで実行されているので、処理されない例外が発生します。Photochooserタスク内でMessageBoxを呼び出す方法
void photoChooserTask_Completed(object sender, PhotoResult e)
{
if (e.ChosenPhoto != null)
{
ProgressBar.Visibility = Visibility.Visible;
image = _UploadImgeViewModel.ReadToEnd(e.ChosenPhoto);
if (image.Length < 16384)
{
BitmapImage bi = new BitmapImage();
bi.SetSource(e.ChosenPhoto);
UserSession.ProfileImage = bi;
Session.PreviousImage = bi;
UserSession.isImageChanged = true;
UserSession.image = image;
UserSession.Uploadimage = image;
NavigationService.Navigated += new NavigatedEventHandler(navigateCompleted);
}
else
{
ProgressBar.Visibility = Visibility.Collapsed;
UserSession.isImageChanged = false;
UserSession.ProfileImage = null;
Dispatcher.BeginInvoke(() => MessageBox.Show("The message"));
}
}
}
#endregion
これは、フォアグラウンドでの再開...とmsgボックスのバックグラウンドジョブのみを表示します。数秒後にアプリがクラッシュします。 これで私を助けてもらえますか?
なぜあなたは、バックグラウンドで 'PhotochooserTask'を実行していますか?そして、どのような誤りがありますか? – keyboardP
フォアグラウンドに完全に戻るまでに10秒かかります。そうしないと、アプリが殺されます。ここに表示できるメッセージボックスがある場合は、認証が失敗します(ユーザーが何もクリックしないため10秒間)。ページが読み込まれるまで待つ必要があります。 –
私は単にフォトチョイスタスクを使用して、自分のアプリのユーザーのプロフィールimgをアップロードしています。これを実行している間、フォトチョーザがまだバックグラウンドで動作している間に、イメージが2Mb以上であることをユーザに示すメッセージを表示したい。実際には、MessageBoxはフォトチューザーを停止し、私はちょうど再開して...そして進行状況バーが後ろに見えて、アプリケーションがクラッシュします。このMessageBoxを削除すると、クラッシュが発生していないことがわかります –