質問: this.list.Count){ //this.countが4になるまで処理をすすめたくない } } //this.countのインクリメントはボタンで行いたい。 private void button2_Click(object sender, EventArgs e){ this.count += 1; } } ``` whileを使って条件がそろうまでループしてやればいいと思っていたのですが、whileを使うと固まってしまいます。なにか解決方法はありますでしょうか?
回答: オイラ的には `DoEvent` を使ったら負けだと思っているので別の解決策を 要するに `this.count==4` となれば `start_Click` できるようになれば良いわけです。ということは `start` (ボタンですよね?) の `Enabled` を操作すればよくて、例えば * `Form_Load` やデザイナなどで `start.Enabled=false;` にして `start` を押せない状況で起動する * `button2_Click` 中で `start.Enabled = (count == list.Count);` などとし、適切なタイミングで `start` を押せるようにする * `start_Click` では処理するだけでよい(条件成立まで押せないため) WinForm App であれ WPF App であれ、イベントハンドラの中で待つようなコードは書かないよう今から心がけてください。 UWP App ではそもそも待ってはいけないことになっています。 `DoEvent` は弊害が大きすぎてオイラは一度も実用したことないです。ダメ。ゼッタイ。