0

V2012 でストア モニタリング テストを実行すると、画像のマニピュレーション開始イベント (またはタップ イベント) 内に MessageBox が 1 つ表示され、アプリの応答性が低下します。

Xaml イメージ コントロール -

 <Image HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" 
        Width="104" Margin="90,60,0,0" Grid.Row="1"  
        ManipulationStarted="Image_ManipulationStarted_1" 
        Source="Background.png"/ >

イベントコード –</p>

private void Image_ManipulationStarted_1(object sender, 
                                         ManipulationStartedEventArgs e)
{
    var m = MessageBox.Show("The file will be saved here.", "File Save", MessageBoxButton.OKCancel);

    if (m == MessageBoxResult.OK)
    {
        int temp = 10;
    }
}

上記のサンプル コードに対してオープン ストア テスト キットで「自動テスト」を実行すると、応答性が低下し、アプリをマーケット プレースにアップロードするときに認証エラーが発生します。手順は次のとおりです-

  1. Visual Studio 2012 のソリューション エクスプローラーでアプリケーション名を右クリックします。

  2. ストア テスト キットを開く -> 自動テスト -> Windows Phone 分析を開始 -> アプリ分析を選択 -> [セッションの開始] をクリックします (アプリが起動します)

  3. アプリケーションの実行が開始されます

  4. 画像に対してタップ イベントを実行すると、メッセージ ボックスが表示され、[OK] をクリックします。

  5. V2012 で [セッションの終了 (アプリは終了します)] をクリックします。

  6. アプリ分析の結果はSummaryに表示されます。その要約で、応答性の前にある赤い線は、アプリケーションの応答性が低く、認証の失敗を引き起こしていることを示しています。

私の要件はそれだけです。私は1つの画像(ボタンとして)を持っていて、クリックすると、つまりタップして操作をしたいです。

注 – ビルドは WP7 を対象としていますが、アプリケーションは WP8 エミュレーターで実行されています。

よろしく

ムケシュ・シャルマ

4

1 に答える 1

0

イベント ハンドラー内にモーダル ダイアログを配置すると、ダイアログが閉じられるまで、呼び出し元のスレッドがロックされます。これにより、応答性の評価が低くなる可能性があります。

あなたが試してみたいのは、イベントハンドラーで操作のために画像を無効にし、イベントハンドラーが戻った後の時間に MessageBox をディスパッチすることです。

private void Image_ManipulationStarted_1(object sender, 
                                         ManipulationStartedEventArgs e)
{
    // <disable image manipulation here>
    Deployment.Current.Dispatcher.BeginInvoke(() =>
    {
        var m = MessageBox.Show("The file will be saved here.", 
                               "File Save", MessageBoxButton.OKCancel);

        if (m == MessageBoxResult.OK)
        {
            int temp = 10;
        }
        // <enable image manipulation again>
    }
}
于 2013-01-25T07:22:30.910 に答える