public partial class Form1 : Form
{
private BackgroundWorker bw;
public Form1()
{
InitializeComponent();
bw = new BackgroundWorker();
bw.DoWork += (sender, args) => MethodToDoWork();
}
private void button1_Click(object sender, EventArgs e)
{
bw.RunWorkerAsync();
}
private void MethodToDoWork()
{
for (int i = 0; i < 3; i++)
{
listBox1.BeginInvoke((Action)
(() => listBox1.Items.Add(string.Format("item {0}", i))));
System.Threading.Thread.Sleep(1000);
}
}
}