Обновления пользовательского интерфейса WPF с ServiceHost на STA - PullRequest
0 голосов
/ 18 апреля 2020

Мне нужна помощь, чтобы выяснить лучшее решение для нижеприведенного.

У меня есть приложение WPF с библиотекой классов, в которой создана служба WCF с собственным хостом, созданная в загруженном событии MainWindow, чтобы разрешить команды API .

например, updateListOfProducts -> возвращать список обновленных записей продуктов в Json

Однако в разделе logi c для обработки он обновляет свойства продуктов, но в пользовательском интерфейсе он имеет два DispatcherTimer, который запускается каждые 100 мс и 500 мс, которые должны работать для правильных свойств, которые были обновлены для обработки после выполнения определенных проверок.

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

Так что в настоящий момент для получения правильных результатов вы отправляете данные в API, которые возвращают неверные данные, затем ждите секунду или два, а затем снова отправьте исходные данные и вы получите правильный результат.

Function updateListOfProducts(ByVal listProducts As List(Of Products)) As String

For Each pProduct In listProducts

logic for processing

Next
Return "serialized string of json updates"
End Function

Любая помощь будет оценена.

...