0
IService service = MyGrpcChannel.CreateGrpcService<IService>();
long[] ids = service.GetIds();

当我完成使用IService时,是否需要做一些事情来关闭/销毁它?

4

1 回答 1

0

没必要,服务是渠道上的薄薄的一层:

https://github.com/protobuf-net/protobuf-net.Grpc/issues/166

我还做了一个测试,创建了 100 万个服务:

for(int i = 0; i <= 1000000; i++)
{
    MyGrpcChannel.CreateGrpcService<IService>().GetIds();
}

任务管理器没有内存泄漏。在执行开始时它使用 100mb,最后也是。

于 2021-03-12T11:16:38.373 回答