Even if you change the sleep argument to something bigger, if you are operating on the same thread where form is operating (main thread), you will not see any change because you are blocking the main thread; instead you should either use another thread or just use the Timer component of windows forms.
int i;
public Form1()
{
InitializeComponent();
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
timer.Interval = 200;
timer.Tick += new EventHandler(timer_Tick);
this.BackColor = Color.White;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
if (this.BackColor == Color.White)
this.BackColor = Color.Black;
else
this.BackColor = Color.White;
}