У меня есть код, который выполняет Windows SVC (другой процесс) и обновляет пользовательский интерфейс в то же время. В звонках используется BeginInvoke
, вот так:
Install.BeginInvoke((MethodInvoker) delegate { Install.Enabled = false; });
Это в обработчике событий DoWork
. Тем не менее, пользовательский интерфейс все еще зависает. Нужен ли мне звонок на Application.DoEvents
где-нибудь (если да, то где?)? Как я могу устранить замораживание?
В нажатие кнопки, у меня есть:
GetPrinterDto(DirectoriesTreeView.SelectedNode.Text);
InstallBackgoundWorker.RunWorkerAsync();
InstallBackgroundWorker
просто запускает код, который обновляет интерфейс и т. Д.
То, что я пытаюсь сделать, это вызвать сервер WCF (размещенный в службе Windows - это нормально), но пока это не работает, обновите индикатор выполнения и метку произвольными значениями асинхронно. Когда я выбираю триод, то отображается обработчик событий для выбранного триода, что может вызвать некоторое замедление. Я постараюсь поместить это в свой фоновый рабочий.