C#でフォームボタンがクリックして条件がととのうまで処理をすすめたくないのですが、whileを使用するとフォームが固まってしまいます。いろいろネットで調べたのですがまだ解決していません。下記にコードを示します。

public partial class Form1 : Form
    {
public int count{get; set;} = 0;
public List<int> list = new List<int>{1,2,3,4};

private void start_Click(object sender, EventArgs e){
    if(this.count == this.list.Count){
//this.countが4になるまで処理をすすめたくない
}
}

//this.countのインクリメントはボタンで行いたい。
private void button2_Click(object sender, EventArgs e){
    this.count += 1;
}

}

whileを使って条件がそろうまでループしてやればいいと思っていたのですが、whileを使うと固まってしまいます。なにか解決方法はありますでしょうか?