Да по какой-то причине WebView.reload () вызывает сбой, если раньше он не загружался (что-то связано с тем, как он обрабатывает историю). Это код, который я использую для обновления моего веб-представления. Я сохраняю текущий url в self.url
# 1: пауза и загрузка страницы self.timeout.pause () sleep (1) # 2: проверьте интернет-соединение (действительно ленивый способ), а self.page (). networkAccessManager (). networkAccessible () == QNetworkAccessManager.NotAccessible: sleep (2) # 3: Повторите попытку, если self.url == self.page (). mainFrame ( ) .url (): self.page (). action (QWebPage.Reload) self.timeout.resume (60) else: self.page (). action (QWebPage.Stop) self.page (). mainFrame (). load (self.url) self.timeout.resume (30) return False
Вы должны взглянуть на Remoting
В вашем коде вы фактически не вызываете службу, вместо этого вы ссылаетесь на исполняемый файл и вызывают метод из этой сборки (во время выполнения .NET Framework будет использовать локальную сборку для выполнения кода, а не для вашего запуска service).
Чтобы сделать то, что вы хотите, у вас есть несколько вариантов.
В .NET 2.0 вы использовали бы .NET Remoting. Вы создаете удаленный интерфейс, который другие сборки могут использовать для вызова методов в исполняемых файлах.
В .NET 3.0 удаленный доступ был заменен WCF. Ваш сервис станет сервисом WCF, который предоставит GetRandomNumber () как часть контракта с данными. Приложения могут использовать контракт и подключаться к вашей службе для вызова метода.
В Интернете есть ряд хороших обучающих программ для .NET Remoting или его замены, Windows Communication Foundation.
Вы можете использовать Windows Communication Foundation и IPC ( inter-process communication ) для связи с вашей службой и выполнения вашего метода.
WCF будет переполнен для общения на одном компьютере. Трубы являются более простым и эффективным решением.
Общение с запущенной службой ничем не отличается от методов вызова в любом другом запущенном процессе. Это означает, что вам нужно будет выкопать свои стандартные инструменты для обработки процесса.
Windows Communication Foundation (WCF) будет моим выбором по умолчанию. Вы можете разместить службу WCF в своей службе Windows и выставить ее через конечную точку Named Pipe для эффективной связи.