0

textbox1に何かを印刷してから、1秒間待ってから画像を表示してから、もう一度1秒間待ってから、ボタンを1回クリックするだけでtextbox2に何かを印刷する必要がある場合があります。ボタンのClickイベントでtextbox1に印刷した後、スリープを書き込んだとき。UIでの印刷は一度に行われることがわかります。つまり、一時停止して次々に印刷が行われることを期待していますが、単一のイベントハンドルであるため、終了するまで待機し、一度にUIに表示されます。最終的には。

4

2 に答える 2

0

Windows Phone 8のように機能するかどうかはわかりませんが、メソッドを非同期にして呼び出すことで「スリープ」することができます

await Task.Delay(1000);


public async void myMethod(){
    printString1();
    await Task.Delay(1000);
    showImage();
    await Task.Delay(1000);
    printString2();
}
于 2013-03-26T14:48:41.003 に答える
0

コードをスレッドに入れて、UIを更新する必要があるときにディスパッチャーを使用できます。

private void Process()
{
    this.Dispatcher.BeginInvoke(() => this.TextBox1.Text = "Hello");
    Thread.Sleep(1000);
    this.Dispatcher.BeginInvoke(() => this.Picture1.Visibility = Visibility.Visible);
    Thread.Sleep(1000);
    this.Dispatcher.BeginInvoke(() => this.TextBox2.Text = "World");
}

次に、スレッドを開始するには(ユーザーがボタンをクリックしたとき):

var thread = new Thread(this.Process);
thread.Start();
于 2013-03-26T15:58:35.037 に答える