Cloud
Облачный сервис для быстрого и эффективного анализа и визуализации данных для вашего бизнеса без необходимости создания своих приложений и программирования.
BackgroundWorker class is used. For simplicity, the same report is run to build in five different threads:
private void button2_Click(object sender, EventArgs e)
{
for (int index = 0; index < 5; index++)
{
var worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
worker.RunWorkerAsync();
}
}
backgroundWorker2_DoWork() event process you can load the report and connect data. Also, if it is necessary, you can subscribe to some events. In ther end, compile and render the report:
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
var report = new StiReport();
using (var stream = Assembly.GetExecutingAssembly().
GetManifestResourceStream("RenderInThread.MasterDetailSubdetail.mrt"))
{
report.Load(stream);
}
report.IsRendered = false;
report.EndRender += new EventHandler(ReportTemplate_EndRender);
report.Render(false);
}