У меня есть две программы и использую базу данных для отправки сообщений между ними.
поэтому я должен активно проверять базу данных на предмет изменений. с менее чем 100 записями, случайно моя программа не может запросить базу данных и выдать Timeout Exception
!
Это приложение Win Form, использующее Entity Framework 6 с .Net 4.6.1 и c #. Я использую фоновый рабочий, чтобы проверять базу данных и делать вещи.
private void Bg_DoWork(object sender, DoWorkEventArgs e)
{
do
{
try
{
var req = context.Requests.FirstOrDefault(x => x.Status == RequestStatus.NotProccesed);
if (req != null)
{
req.Status = RequestStatus.InProccess;
context.SaveChanges();
Task.Factory.StartNew((requestObj) =>
{
//Do the Stuff...
}, req);
}
Thread.Sleep(200);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
} while (!bg.CancellationPending);
}
случайно я получаю тайм-аут SQLServer в функциях «FirstOrDefault» или «SaveChanges».