C# 从Windows服务启动时,窗口不可见
有一个监视给定基础结构的windows服务。 在某些情况下,需要弹出一个表单,用户可以在其中看到一些指标并进行选择 为此,我盯着一个WPF窗口C# 从Windows服务启动时,窗口不可见,c#,wpf,multithreading,windows-services,C#,Wpf,Multithreading,Windows Services,有一个监视给定基础结构的windows服务。 在某些情况下,需要弹出一个表单,用户可以在其中看到一些指标并进行选择 为此,我盯着一个WPF窗口 var thread = new Thread(() => { var w = new MyWindow(); _uis.Add(w); w.Info = sb.ToString(); w.Show(); System.Windows.Threading.Dispatcher.Run();
var thread = new Thread(() =>
{
var w = new MyWindow();
_uis.Add(w);
w.Info = sb.ToString();
w.Show();
System.Windows.Threading.Dispatcher.Run();
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
不幸的是,我看不见窗户。
当我在控制台应用程序中托管我的服务业务逻辑时,我可以看到窗口
诀窍何在?服务无权访问相同的权限(网络服务/本地服务),也无权访问您的桌面 服务本质上是无声的,根本不具备启动windows的能力
控制台应用程序确实具有此功能,控制台应用程序不是windows服务,当然也具有与用户交互的功能。服务无权访问相同的权限(网络服务/本地服务),也无权访问您的桌面 服务本质上是无声的,根本不具备启动windows的能力
控制台应用程序确实具有此功能,控制台应用程序不是windows服务,当然也具有与用户交互的功能。您可以拆分功能:
- 服务进行监控
- 用于显示来自服务的信号的客户端应用程序
机器启动时,服务将启动。应用程序将从每个登录的用户启动。您可以拆分功能:
- 服务进行监控
- 用于显示来自服务的信号的客户端应用程序
机器启动时,服务将启动。该应用程序将从每个登录的用户启动。没有技巧。不要这样做 这种方法与关于服务和UI的成熟实践和模式背道而驰。您不应尝试直接从windows服务显示UI(或交互式UI) 标准做法是编写一个单独的UI应用程序来与windows服务通信。 可以考虑定期更新UI。 Web服务可用于服务和UI应用程序之间的通信 艰难之路 然而,如果你真的想做你最初要求的事情,那就来吧
没有诡计。不要这样做 这种方法与关于服务和UI的成熟实践和模式背道而驰。您不应尝试直接从windows服务显示UI(或交互式UI) 标准做法是编写一个单独的UI应用程序来与windows服务通信。 可以考虑定期更新UI。 Web服务可用于服务和UI应用程序之间的通信 艰难之路 然而,如果你真的想做你最初要求的事情,那就来吧
会话0隔离使从Windows服务显示GUI时的问题复杂化。会话0隔离使从Windows服务显示GUI时的问题复杂化。