完善海康 SDK 日志

This commit is contained in:
2026-01-16 17:45:27 +08:00
parent 0b374121f3
commit 97a322960a
6 changed files with 167 additions and 37 deletions

View File

@@ -652,16 +652,26 @@ public abstract class BaseVideoSource : IVideoSource, IAsyncDisposable, IDeviceC
/// </summary>
public void Dispose()
{
// 异步销毁在后台执行,避免阻塞 UI 线程
Task.Run(async () => await DisposeAsync().ConfigureAwait(false)).GetAwaiter().GetResult();
// 触发异步销毁,但设定一个超时兜底,防止永久卡死 UI
// 这里等待 2 秒,如果还没销毁完也强行返回,避免界面冻结
Task.Run(async () => await DisposeAsync().ConfigureAwait(false))
.Wait(TimeSpan.FromSeconds(2));
GC.SuppressFinalize(this);
}
private volatile bool _isDisposed = false;
/// <summary>
/// 异步销毁资源(优雅关闭)
/// </summary>
/// <returns>ValueTask</returns>
public virtual async ValueTask DisposeAsync()
{
// 防止重复 Dispose
if (_isDisposed) return;
_isDisposed = true;
// 1. 停止业务逻辑
await StopAsync().ConfigureAwait(false);