在using语句中使用C#Singleton - 在using语句结束时Singleton会发生什么

时间:2018-05-04 20:00:21

标签: c#

假设我有私有静态MyClient _myClient,它打开与外部服务器的连接。它实现了IDisposable。 '客户'是在第一次使用时创建的:

if (_myClient == null)
    _myClient = new MyClient (_myClientHostAddress);

我假设一旦执行了上述语句,类加载器就会将实例_myClient放在应用程序堆栈上。

这种用法是否正确:

using (_myClient)

如果是这样,当using语句超出范围时,_myClient会发生什么?

_myClient是否已标记为gc或由IDisposable直接从应用程序堆栈中弹出?

如果标记为垃圾收集,垃圾收集器会将其从堆栈中弹出吗?

谢谢!

0 个答案:

没有答案