构造新对象会导致内存泄漏

时间:2013-11-09 05:47:26

标签: c#

这种方法是否使用了大量的内存资源?

Private MyWorkerClass worker;
Private Thread myWorkerThread;
//private Thread  myWorkerThread= new Thread(worker.doThisWork); // i cant do this, because i cant restart the thread when i construct it here.
public void IwantMyWorkDosomething(){
    myWorkerThread= new Thread(worker.doThisWork);
    myWorkerThread.start();
    myWorkerThread.stopWorking(); // stop my worker class thread running;
}
public void main(){

    this.IwantMyWorkDosomething();
    this.IwantMyWorkDosomething();
    this.IwantMyWorkDosomething();
    this.IwantMyWorkDosomething();
    this.IwantMyWorkDosomething();

}

我的代码正在运行,但如果我运行该方法1000次,我不确定它是否会崩溃我的程序。

1 个答案:

答案 0 :(得分:1)

构造一个线程对象很便宜。而且,重新构建一个新的便宜。垃圾收集器将释放未使用的资源,您只需要确保您不会unnessecarilly保留对已完成的线程对象的引用。

只有当您尝试同时运行数千个线程时才会出现资源问题。但即便如此,通常不会造成瓶颈但CPU和任务调度程序的内存(即任务开始运行速度比执行速度慢)。