情報ログを維持する必要があります。これらのログは多数のスレッドから同時に書き込むことができますが、必要な場合は1つのスレッドのみを使用してデキューし、コレクションのデキューの間に約5秒の休憩を取ります。
以下は、デキューするために作成したコードです。
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);
}
デキューした後、データベースに挿入するためにListofInformationLogを必要とするLINQの挿入メソッドに渡します。
これは正しい方法ですか、それともこれを行うための他の効率的な方法はありますか?