Rendering a large report on a background thread keeps the UI responsive and lets you report progress as pages are built.

Render off the UI thread. Do the work inside a BackgroundWorker, subscribing to the engine's progress event:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    report.Load(stream);
    report.IsRendered = false;
    report.Compile();
    report.CompiledReport.Rendering += CompiledReport_Rendering;
    report.Render(false);
}

private void CompiledReport_Rendering(object sender, EventArgs e)
{
    button1.Invoke((EventHandler)delegate { button1.Text = report.StatusString; });
}

How it works. Because rendering runs on the worker, the form stays interactive and the button text reflects live progress until the report is shown.

By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.