林用下面的代码C#新的线程
private void timer1_Tick(object sender, EventArgs e)
{
Thread nT = new Thread(new ThreadStart (checkThread));
nT.Start();
}
的cheackThread()函数进行网络请求和计时器的滴答声特性试验是2000毫秒。 checkThread()中的所有对象在使用后都会被丢弃。当程序长时间运行(例如3小时)时,操作系统会抱怨资源不足。我注意到在ctrl-alt-delete中,应用程序运行时句柄数量正在增加。线程在执行完所有代码后是不是自动释放内存,或者这是gc.collect被允许的时间之一?
'checkThread'方法是否正常退出,即它总是释放其资源? – 2011-04-16 13:55:33
我处理checkThread方法中使用的对象,如: reader.Close(); dataStream.Close(); response.Close(); dataStream.Dispose(); – brux 2011-04-16 13:56:57
不要使用'Close()'。将它们放在'use(){}'块中以保证异常安全。 – 2011-04-16 14:20:15