【问题标题】:C# Windows Forms GUI - Monitor Windows StartupC# Windows 窗体 GUI - 监控 Windows 启动
【发布时间】:2011-03-18 16:13:12
【问题描述】:

我有一个 C# Windows 窗体交互式应用程序和一个相关的 C# Windows 服务。

在部署这些的特定机器上,登录和应用程序启动是自动的。交互式应用程序总是在服务之前启动。该应用程序有一个状态指示器来显示它何时连接到服务,但这些机器速度很慢,我的服务需要 45-60 秒才能最终启动。在此期间,屏幕上什么也没有发生。

我应该指出,我的服务启动很快......它是依赖(和其他)服务需要一些时间才能启动。

我希望在应用程序等待服务时显示 Windows 启动进度的某种指示。我正在考虑显示一个进度条,显示类似started_automatic_services/automatic_services。还有其他更合适的方法吗?

【问题讨论】:

    标签: c# service startup


    【解决方案1】:

    一种可能性是使用WMI event query 来监控服务的启动,这至少可以让您了解进度

    Starting services:  
    Service 1 started 
    Service 2 started etc.
    

    MSDN 示例 Subscribing to and Consuming Management Events 应该足以让您继续前进,因为它专门说明了查询服务以了解状态更改。

    【讨论】:

    • 我从来没有用过这个……很好。
    • 一个警告是WMI服务必须在查询WMI之前启动
    【解决方案2】:

    为什么不使用托盘图标?代表与您的服务的“断开”或未初始化连接的图像将是最初使用的图像,一旦服务出现,您可以将其更改为“正常”或“一切正常”图标。一些 AV 软件客户端会这样做。

    您也可以使用带有叠加层的相同图标,可能是右下角的一个小沙漏或类似的东西,然后将其删除。

    也许每次用户启动时都显示一个进度条可能会相当麻烦和烦人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多