public void worker_DoWork(object sender, DoWorkEventArgs e) { string inMessage; while (true) { while ((inMessage = GetData()) != null) { worker.ReportProgress(0, inMessage); } if (worker.CancellationPending) break; } }