简介明了,上实验代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
/********************************************************************
created: 2018/10/16
created: 16:10:2018 10:00
filename: c:\users\bayin\documents\visual studio 2012\Projects\experiment\experiment\Program.cs
file path: c:\users\bayin\documents\visual studio 2012\Projects\experiment\experiment
file base: Program
file ext: cs
author: Bill
purpose: 实验析构函数调用时间,调用在所有资源释放之前;
*********************************************************************/
namespace experiment
{
class Program
{
static void Main(string[] args)
{
testExit testExit = new testExit();
GC.Collect();
//while (true)
//{
//}
Console.ReadKey();
testExit = null;
System.Environment.Exit(0);
}
}
public class testExit
{
Thread print = null;
int i = 1;
private CancellationTokenSource cancelSource = new CancellationTokenSource();
public testExit()
{
print = new Thread(ThreadPrint);
print.IsBackground = false;
print.Start();
}
private void ThreadPrint(object obj)
{
while (!cancelSource.IsCancellationRequested)
{
Console.WriteLine("当前执行到" + i++.ToString());
Thread.Sleep(10);
}
}
~testExit()
{
cancelSource.Cancel();
}
}
}
总结:在一些程序一开始就自动运行的辅助类,可使用析构函数释放类资源,避免了臃肿的Exit()函数的调用。程序设计应随机应变,灵活机动。