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.

Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.