Downloading CR in a separate thread at application startup for me.
//preload crystal reports on a seperate thread Task.Factory.StartNew(() => { try { using (ReportDocument preloadCrystalReport = new ReportDocument()) { preloadCrystalReport.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports/Report.rpt")); PrintPreview preloadCrystalGUI = new PrintPreview().Init(preloadCrystalReport); preloadCrystalGUI.Dispose(); } } catch (Exception e) { \\log exception } }, TaskCreationOptions.LongRunning);
The PrintPreview class in my case is a dialog with a CR control built into it. I do not show a dialog at preload.
I found that preloading the .rpt file also helped with the help of the user
Anton source share