宿主生命周期
宿主负责打开通道、运行后台服务,并在退出时按相反顺序释放资源。
顺序
ZeusHost.Create:登记通道和设备,此时还不打开端口。StartAsync:按注册顺序打开通道。某个通道失败会记入日志,其它通道继续打开。- 运行期间通过
Channels、Devices、Points访问对象;采集循环按间隔轮询。 StopAsync或DisposeAsync:按相反顺序关闭通道。
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时会自动处理)。