こんにちは、私はUIスレッドを処理する方法を理解していないので、子スレッドで多くのUI要素を作成しようとしましたが、 ウィンドウがブロックされないように次のコードを変更する方法:メインスレッドをブロックせずに多数のコントロールを作成するにはどうすればよいですか?
public void CreateCtr(string name)
{
Button btn = new Button();
btn.Content = name;
btn.Width = 10;
btn.Height = 10;
content.Children.Add(btn);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
int count = 100000;
Task.Factory.StartNew(()=> {
for (int i = 0; i < count; i++)
{
this.Dispatcher.BeginInvoke(new Action(()=> {
CreateCtr(i.ToString());
}));
}
});
}
真剣に、10万個のボタンを持つフォームが必要なのはなぜですか? – NineBerry
実際、私はちょうどそれを行う方法があるかどうかを知りたいです。 – Joker
100.000ボタンを作成することはできず、時間とは関係がありません。あなたがそれをすることを許されないという事実とは関係ありません。 –