如何确保子线程释放资源?高手请进!
我在主线程中创建一子线程:
......
Thread thread = new Thread( new ThreadStart(run) );
thread.start();
......
以下是子线程:
void run()
{
IntPtr handle = Marshal.AllocHGlobal( buffersize );
......
Marshal.FreeHGlobal( handle );
}
现在的问题是:主线程在子线程执行到最后一句前就已终止了,于是子线程也跟着终止,但其申请的资源并未释放。有没有办法确保子线程在任何情况下终止,都能释放它所申请的资源?