Плохо ли использовать такой цикл while?Может быть, лучше использовать секундомер, или, может быть, у этого решения есть некоторые подводные камни?
public void DoWork()
{
//do some preparation
DateTime startTime = DateTime.Now;
int rowsCount = 0;
int finalCount = getFinalCount();
do
{
Thread.Sleep(1000);
rowsCount = getRowsCount(); // gets rows count from database, rows are added by external app.
} while (rowsCount < finalCount && DateTime.Now - startTime < TimeSpan.FromMinutes(10));
}
Я видел эту статью Реализация общего тайм-аута C # , но его слишком сложно использовать в простых сценариях- вам нужно подумать о синхронизации потоков, правильно ли их прервать или нет и так далее.