Как заставить GUI ожидать сервиса окон?

В схеме вещей несколькими миллионами строк не является особенно большая База данных.

Принятие мы говорим о базе данных OLTP, денормализовывая без первой идентификации, что первопричина Ваших узких мест очень, очень плохая идея .

первая вещь, которую необходимо сделать, представить рабочую нагрузку запроса по представительному периоду времени для идентификации, где большая часть работы делается (например, с помощью SQL Profiler при использовании SQL Server). Посмотрите на количество логических чтений, которые запрос выполняет умноженный на выполняемое количество раз. Как только Вы определили лучшие десять худших запросов выполнения, необходимо исследовать планы выполнения запросов подробно.

я собираюсь рискнуть здесь (потому что это обычно имеет место), но я был бы удивлен, не ли Ваша проблема или

  1. Отсутствие 'правильных' закрывающих индексов для дорогостоящих запросов
  2. Плохо настроена или под указанной дисковой подсистемой

Это , ТАКИМ ОБРАЗОМ, ответ описывает, как представить для нахождения худших запросов выполнения в рабочей нагрузке.

7
задан kyrisu 10 August 2009 в 13:39
поделиться

4 ответа

ServiceController имеет метод WaitForStatus, в который вы передаете ему аргумент типа ServiceControllerStatus. Вы можете использовать его так:

controller.WaitForStatus(ServiceControllerStatus.Running);
8
ответ дан 6 December 2019 в 23:11
поделиться

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

Darknight

1
ответ дан 6 December 2019 в 23:11
поделиться

Используйте объект события ядра . Когда вы запускаете оба приложения, попросите их создать или открыть именованный объект Event, а затем дождаться его. Другой может сигнализировать об этом, изменяя состояние, позволяя другому приложению перестать ждать и работать.

1
ответ дан 6 December 2019 в 23:11
поделиться

Используйте EventWaitHandle . Ваш графический интерфейс может ждать WaitHandle, и служба установит его, что заставит графический интерфейс продолжить то, что он делал до начала ожидания. Без опросов, без циклов, без беспорядка.

Эта замечательная статья о потоках в C # , вероятно, лучший источник информации о WaitHandles

1
ответ дан 6 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: