并行读取多个XML文件并插入数据库
本文关键字:插入 数据库 文件 XML 读取 并行 | 更新日期: 2023-09-27 18:14:34
为了提高性能,我想并行读取10个XML文件,并在数据库中插入数据。
1。如何实现读取和数据库插入并行?例如,当一个文件正在读取已经读取的XML文件的插入数据时。
2。如何实现并行处理多个XML文件(包括读取和数据库插入)。即同时处理10个文件。语言c#
Used Task.Factory.StartNew(() => Method1(), CancellationToken.None,
TaskCreationOptions.LongRunning, TaskScheduler.Default);
但是Method1()中的方法只被调用一次
使用标准的生产者/消费者模式。
var xmlFiles = new BlockingCollection<XDocument>();
var readFiles = Task.Run(() =>
{
try
{
foreach (var file in Directory.EnumerateFiles(".", "*.xml"))
xmlFiles.Add(XDocument.Load(file));
}
finally { xmlFiles.CompleteAdding(); }
});
var processFiles = Task.Run(() =>
{
foreach (var xml in xmlFiles.GetConsumingEnumerable())
{
// Insert data to database
}
});
Task.WaitAll(readFiles, processFiles);
该方法提供了从磁盘独立读取文件和向数据库写入数据的功能。