我必须维护信息日志,这些日志可以从多个线程同时写入,但是当我需要它们时,我只使用一个线程将其出列,这在出列集合之间需要大约 5 秒的休息时间。
以下是我为 Dequeue 它编写的代码。
if (timeNotReached)
{
InformationLogQueue.Enqueue(informationLog);
}
else
{
int currentLogCount = InformationLogQueue.Count;
var informationLogs = new List<InformationLog>();
for (int i = 0; i < currentLogCount; i++)
{
InformationLog informationLog1;
InformationLogQueue.TryDequeue(out informationLog1);
informationLogs.Add(informationLog1);
}
WriteToDatabase(informationLogs);
}
出队后,我将其传递给 LINQ 的 insert 方法,该方法需要 List of InformationLog 插入数据库。
这是正确的方法还是有其他有效的方法可以做到这一点?