请教:封装了thread的类,其生存周期怎么算?
假定有如下的代码,我在Class1中封装thread,并在Main中循环调用new Class1。
我的问题是:
1、Main中for循环结束,打印出"end of for loop"的时候,100个new出来的Class1实例线程还未结束,此时Class1中的age申请的内存应该未释放?
2、Main中for循环结束,且100个new出来的Class1实例线程也结束掉之后,此时这100个实例对象是否结束?其申请的内存被回收?
namespace ConsoleApplication1{ class Program { static void Main(string[] args) { for (int i = 0; i < 100;i++ ) { Class1 classtest = new Class1(); classtest.startdownthread(); } Console.WriteLine("end of for loop"); Thread.Sleep(1000); Console.ReadKey(); } } class Class1 { private int[] age; private Thread CalulateThread; public Class1() { CalulateThread = null; age = new int[1024]; } public void startdownthread() { CalulateThread = new Thread(Caculate); CalulateThread.IsBackground = true; CalulateThread.Start(); } private void Caculate() { //做一些很费时的工作如数值计算等 Thread.Sleep(1000); Console.WriteLine(GetHashCode()); return; } }}