 
  
   
  
   
  
   
  
   
  
  delegate void DWriteToLog(string message);
static object locker = new object();
private void bGo_Click(object sender, EventArgs e)
{
	... //работа с формой
	Log.Items.Add("Загрузка id");
	Thread t = new Thread(Download);
	t.Start();
	t.Join();
	... //работа с формой
}
void Download()
{
	for (int i = 0; i <= 2; i++)
	{
		for (int j = 0; j <= 1000; j += 100)
		{
			... //запрос в сеть
			WriteToLog("test");
		}
	}
}
void WriteToLog(string message)
{
	this.Invoke(new DWriteToLog(UpLB), new object[] { message });
}
void UpLB(string message)
{
	lock (locker)
	{
		Log.Items.Add(message);
	}
}
 
  
  