C # проверка новых элементов приложения, когда приложение работает - PullRequest
2 голосов
/ 26 февраля 2011

У меня есть система отчетов, в которой есть список отчетов, доступных для запуска пользователю.Я хочу, чтобы приложение периодически просматривало новые отчеты на сервере SQL и заполняло список доступных отчетов.

Но я хочу сделать это без блокировки приложения, я хочу, чтобы это было беспроблемно и чтобы пользователь даже не знал, что это происходит.

Как я могу сделать это наиболее эффективным способом из возможных?

Спасибо

Ответы [ 2 ]

2 голосов
/ 26 февраля 2011

Если я понимаю ваш вопрос, вам нужно, чтобы фоновый поток выполнял эту работу, не затрагивая пользователя, и обновлял графический интерфейс, когда это было сделано.

Просмотрите вспомогательный класс BackgroundWorker.

2 голосов
/ 26 февраля 2011

Я бы предложил использовать фоновый поток для опроса.Вы можете запустить новый объект Thread и опросить сервер, спящий после каждой проверки.Если вы найдете изменение, вы можете получить данные, а затем вам нужно будет вызвать Invoke, чтобы обновить GUI, потому что это не может быть сделано в другом потоке.

Альтернативой является использование таймера и проверка внутри.событие Tick, но если проверка занимает много времени (и может занять много времени, если ваш сервер занят или если имеется блокировка таблицы), то это заблокирует ваше приложение, поэтому я бы рекомендовал не использовать этот подход.

...