看圖
代碼
using System;
namespace Cmd
{
class Program
{
public static void Main(params string[] args)
{
Loader.Read();
Loader.Native = null;
GC.Collect();
}
}
public static class Loader
{
public static void Read() => Native.Read();
public static Native Native = new Native();
}
public class Native : IDisposable
{
static Native()
{
AppDomain.CurrentDomain.ProcessExit += (m, n) => { Console.WriteLine("exit."); };
}
~Native()
{
Console.WriteLine("release native.");
}
public void Read()
{
Console.WriteLine("read native.");
}
public void Dispose()
{
Console.WriteLine("dispose native.");
}
}
}
三種方式
- 置 NULL (注意:隱式釋放)
- 回調 AppDomain.CurrentDomain.ProcessExit
- 程序主動釋放。