M
mycwcgr_new
Unregistered / Unconfirmed
GUEST, unregistred user!
在下面的程序中,将new myclass()动态的赋值给a1,然后执行a1.dosomething(),如果在dosomething()中使用了非托管资源,由于myclass没有释放资源,会不会产生内存泄露?非托管资源应放在myclass的什么地方释放, 如何处理这一类的问题?
退一步说,就算dosomething()没有使用非托管资源,由于.net不能显示的释放对象,循环语句会大量的占用系统资源,运行会非常慢?
using System;
namespace Project2
{
/// <summary>
/// Summary description for Class.
/// </summary>
class Class
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
myclass a1;
for(int i=0;
i<=10000;i++){
a1=new myclass();
a1.dosomething();
}
}
}
class myclass {
public voiddo
something(){
//...
//...
}
}
}
退一步说,就算dosomething()没有使用非托管资源,由于.net不能显示的释放对象,循环语句会大量的占用系统资源,运行会非常慢?
using System;
namespace Project2
{
/// <summary>
/// Summary description for Class.
/// </summary>
class Class
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
myclass a1;
for(int i=0;
i<=10000;i++){
a1=new myclass();
a1.dosomething();
}
}
}
class myclass {
public voiddo
something(){
//...
//...
}
}
}