问题描述
IService service = MyGrpcChannel.CreateGrpcService<IService>();
long[] ids = service.GetIds();
当我使用完 IService 时,我需要做些什么来关闭/销毁它吗?
解决方法
没有必要,该服务只是频道上的薄饰:
https://github.com/protobuf-net/protobuf-net.Grpc/issues/166
我还做了一个测试,创建了 100 万个服务:
for(int i = 0; i <= 1000000; i++)
{
MyGrpcChannel.CreateGrpcService<IService>().GetIds();
}
任务管理器上没有内存泄漏。在执行开始时,它使用了 100mb,在结束时也是如此。