2

私のWP7アプリでは、プレーヤーが線を引き、次にCPUが線を引きます。CPUに5秒間待機させてから、処理して線を描画します。System.Threading.Thread.Sleep(5000);プレイヤーが描画を終えた直後にこれを使用します。しかし、プレーヤーの線は完全には描画されず、システムはスリープ状態になり、5秒後に両方の線が描画されます。プレーヤーのラインを完了してから遅延を開始するにはどうすればよいですか?

4

3 に答える 3

3

System.Threading.Thread.Sleep(5000)は、アプリとUIをフリーズします。このため、アプリは確実に認定に合格しません。

DispatcherTimerを使用します。詳細については、このリンクをたどってください。

于 2012-09-24T09:03:52.287 に答える
0

DispatcherTimerを使用して、プレーヤーのターンの直後に遅延を追加できます。

これは通常、あなたができることです:

クラス変数:

DispatcherTimer delayTimer = new DispatcherTimer();
int timesTicked = 0;

コンストラクター内:

delayTimer.Interval = new TimeSpan(0, 0, 0, 0, 5000);
delayTimer.Tick += new EventHandler(timer_Tick);

ハンドラ:

void delayTimer_Tick(object sender, EventArgs e)    
{
    timesTicked++;
    if(timesTicked == 2)
    {
      timesTicked = 0;
      delayTimer.Stop();
      RunCPU();
    }
}

上記は、タイマーがティックした回数を追跡し、2ティック後に、RunCPUメソッドを呼び出します。上記は10秒になることに注意してください。数字をいじって、遅延のニッチを見つけることができます。

于 2012-09-24T10:08:52.160 に答える
-2

Application.DoEvents();で試してください。寝る前。

于 2012-09-24T09:02:29.377 に答える