El BGW, el LV, un timer y un manual reset event.
Un listview con tres columnas. Los eventos Load del form, Tick del timer, DoWork y ProgressChanged del backgroundworker, seteados a sus corespondientes métodos delegados del form1.
using System; using System.ComponentModel; using System.Windows.Forms; using System.Threading; namespace WindowsFormsApplication1 { public partial class Form1 : Form { ManualResetEvent mre; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { mre = new ManualResetEvent(false); timer1.Enabled = true; timer1.Interval = 10000; backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.RunWorkerAsync(); } private void timer1_Tick(object sender, EventArgs e) { mre.Set(); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { for (; ; mre.Reset()) { mre.WaitOne(); // hace lo suyo // actualiza listview ListViewItem lvi = new ListViewItem(DateTime.Now.ToString("HH:mm:ss")); lvi.SubItems.Add("..."); lvi.SubItems.Add("+++"); backgroundWorker1.ReportProgress(0, lvi); } } private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { listView1.Items.Add((ListViewItem)e.UserState); } } }