为什么c#不怕内存泄露

来源:百度知道 编辑:UC知道 时间:2024/08/29 15:29:11
在c#里面为什么不用担心会发生内存泄露。

谁告诉你C#不会发生内存泄漏的?告诉你:这种说法是错误的,C#只是发生泄漏的机会小些,仅此而已,如果你在编写程序的时候出现下面的错误,那泄漏的机会就是100%了,例:
TcpListener listener=new TcpListener(m_Port);
listener.Start();
Thread ListenerThread=new Thread(new ThreadStart(AccecptRequest));
ListenerThread.Start();

private void AccecptRequest()
{
while(true)
{
if(listener.Pending())
{

}
else
{
Thread.Sleep(100);
}
}
}

listener.Pending()这句代码就会造成内存泄漏,不信你试试看?

因为C#自己会回收内存,有自动回收机制,鹏飞西街说的那根本就不是内存泄露。

同意楼上的。

而且C#还可以执行不安全的代码呢。

来迟1步 4楼正解!

这种说法是不严密的。

虽然C# 有了 GC 这个垃圾自动回收机制,但是GC的回收发生的时间是不定的。
而且,对于非托管对象,以及网络链接,文件句柄等资源,还是很容易造成内存泄漏的。

被1楼 抢先了