ausgeführt wird. Wenn weitere Informationen erforderlich sind, kann ich zusätzlich liefern. Lassen Sie mich in den Kommentaren wissen.
Code: Select all
public string GenerateReports(Query query)
{
// Collect data for reports.
const string report_1_folderPath = "path1";
Task generateReports_Task_1 = Task.Run((
Parallel.ForEach(reportData_1, (data)=>{
_reportGenerator.GenerateReport_1(data, report_1_folderPath);
});
));
const string report_2_folderPath = "path2";
Task generateReports_Task_2 = Task.Run((
Parallel.ForEach(reportData_2, (data)=>{
_reportGenerator.GenerateReport_2(data, report_2_folderPath);
});
));
// Processing something else . . .
Task.WaitAll(generateReports_Task_1, generateReports_Task_2);
// Archive folders and return to client . . .
}
< /code>
ReportGenerator ist so etwas wie folgt: < /p>
public class ReportGenerator
{
public string GenerateReport_1(ReportData data, string folderPathToSaveReport)
{
using (ReportDocument report = new ReportDocument())
{
report.Load(_reportTemplatePath);
// data.DataSourceObject is of Type IEnumerable
report.SetDataSource(data.DataSourceObject);
report.SetParameterValue("Parameter1", data.Parameters.p1); //