7个回答
展开全部
谁告诉你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()这句代码就会造成内存泄漏,不信你试试看?
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()这句代码就会造成内存泄漏,不信你试试看?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
展开全部
谁告诉你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()这句代码就会造成内存泄漏,不信你试试看?
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# 有了 GC 这个垃圾自动回收机制,但是GC的回收发生的时间是不定的。
而且,对于非托管对象,以及网络链接,文件句柄等资源,还是很容易造成内存泄漏的。
虽然C# 有了 GC 这个垃圾自动回收机制,但是GC的回收发生的时间是不定的。
而且,对于非托管对象,以及网络链接,文件句柄等资源,还是很容易造成内存泄漏的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意楼上的。
而且C#还可以执行不安全的代码呢。
而且C#还可以执行不安全的代码呢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询