Thread.sleep()を実行する前にwpf要素をリフレッシュする方法を知りたい。以下のシナリオでは、Thread.sleep()コールが最初に実行され、次にwpf要素が更新されます。私はいくつかの変数assignationsとコメントを追加しました、私が欲しいものを理解するには:Thread.sleepを実行する前にwpf要素を更新する
EDIT:button_clickイベントハンドラで
:
は、私はこれを試してみました。private void button_click(object sender, RoutedEventArgs e){
//fist of all, set the static variable to_change to true, then Update GUI label
to_change = true;
Thread thread = new Thread(UpdateGUI);
thread.Start();
//Then sleep 1 second and (With label changed)
Thread.Sleep(1000);// one second
//and lately reset the value of to_change to false and update the GUI again
to_change = false;
//UpdateGUI.
}
そしてUpdateGUIで私が持っている:また、私は、私はいくつかの重要な概念が欠けていると思い、最優先
あるDispatcherPriority.Sendで
private void UpdateGUI()
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(ThreadStart)delegate()
{
this.label_success.Content = "Successful!";
}
);
}
を試してみました。
ありがとうございます!
これは悪いコードです –
**決して** UIスレッドでスリープします。あなたは何を達成したいですか? – Clemens
@Clements私は、理解を深めるために質問を編集しました。あなたが私がしようとしていることを理解できない場合は、私に知らせてください。 –