namespace nameSpace1 { public class gcDemo:IDisposable { static int ctor_cnt = 0; static int dtor_cnt = 0; static public gcDemo c1; static public StreamWriter ofile; static int iterations; private bool isDispose = false; public void Dispose() { Dispose(true); System.GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if(!isDispose) { if(disposing) ofile.Close(); } isDispose = true; } static public int Iterations { get { return iterations; } set { iterations = value; } } static gcDemo() { string startupPath; startupPath = Application.StartupPath; ofile = new StreamWriter(new FileStream(startupPath+@"fx.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.None)); ofile.WriteLine("all trace output at {0}", startupPath+@"fx.txt");
Console.WriteLine("startupPath is :{0}", startupPath); } public gcDemo() { ofile.WriteLine("gcDemo Class Constructor: {0}", ++ctor_cnt); ofile.Flush(); }