C#中的事件注册范围

可能因为GC资源释放而无法调用’已完成’事件处理程序?

public void StartVideo(WerCamera camera)
    {
        Credential creadential = new Credential() { Email = CurrentUser.Email,Password = CurrentUser.Password,SessionNumber = SessionNumber};
        CommandsClient client = new CommandsClient();
        client.StartVideoCompleted += client_StartVideoCompleted;
        client.StartVideoAsync(int.Parse(camera.Id),creadential,ClientInfo);

        client.CloseAsync();
    }

解决方法

是的,这是可能的,因为一旦函数返回,您将丢失对客户端的所有引用.

client.StartVideoCompleted = client_StartVideoCompleted;最终使用client_StartVideoCompleted函数保持对该对象的引用,但这不是往复的.您需要以某种方式保持对创建的客户端的引用.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...