SQL Server2008: BeginExecuteNonQuery / проблема EndExecuteNonQuery

У меня есть хранимая процедура, которая пишет резервное копирование определенной базы данных. Я называю этот SP в C# / приложение Windows Forms асинхронно. Вот отрезанный код:

IAsyncResult result = command.BeginExecuteNonQuery();
while (!result.IsCompleted)
{
     System.Threading.Thread.Sleep(1000);
     ...
}
command.EndExecuteNonQuery(result));

Через какое-то время программа оставляет цикл, потому что IsCompleted = верный и называет EndExecuteNonQuery. Проблема теперь, что Задание все еще занято, и EndExecuteNonQuery заблокирован! Это вызывает тайм-аут сервера после нескольких минут. Кажется, что значение IsCompleted не согласовывается соответственно что случилось с IsCompleted? То, как я могу достигнуть той своей программы, распознает "реальное состояние задания"?

5
задан Elmex 3 August 2010 в 16:07
поделиться