C#中Using里使用单例的问题

又给自己挖了一个坑跳进去。

KafkaManager使用单例模型获取到一个producer,然而自己代码里用的时候加了一个using

1 using (var producer = KafkaManager.Instance.GetProducer(Configs.Kafka_ScanResend))
2 {
3 //code goes here
4 }

 

然后自己在做测试的时候,for循环加10条数据发送到kafka,结果发现每次都只有第一条可以发送成功,之后都失败了。

debug之后发现 xxx.cs:4 处报错,错误消息是:object reference not set to an instance of object.细查可发现调用了dispose方法,将这个producer释放了。

然后就能知道是这个using里使用单例的方式,会导致这样的问题。

using使用方式可查看官方文档

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/using-statement

posted @ 2017-11-01 12:39  Sylvia小伊  阅读(242)  评论(0编辑  收藏  举报