跳到主要内容

宿主生命周期

宿主负责打开通道、运行后台服务,并在退出时按相反顺序释放资源。

顺序

  1. ZeusHost.Create:登记通道和设备,此时还不打开端口
  2. StartAsync:按注册顺序打开通道。某个通道失败会记入日志,其它通道继续打开。
  3. 运行期间通过 ChannelsDevicesPoints 访问对象;采集循环按间隔轮询。
  4. StopAsyncDisposeAsync:按相反顺序关闭通道。
await using var app = ZeusHost.Create(builder =>
{
builder.AddVirtualChannel("meter");
});
await app.StartAsync();
// ... 业务 ...
await app.StopAsync();

说明

  • builder.Services 是标准 IServiceCollection,可以注册自己的服务。
  • app.Services 在构建完成后可用于解析服务。
  • 宿主停止后再启动,通道状态不可靠。需要重新运行时,请再创建一次宿主。

常见问题

  • 启动后某通道为 Faulted:查看日志,或订阅 StateChanged
  • 进程退出后串口仍被占用:确认窗口关闭时调用了 DisposeAsync(使用 AttachZeus 时会自动处理)。