public static void Main()
System.Runtime.Loader.AssemblyLoadContext.Default.Unloading += (arg) => { OnUnloading(); };
private static void OnUnloading()
private static void RunTest()
var t1 = new System.Threading.Thread(RunThread);
Console.WriteLine("Starting..");
Console.WriteLine("Sleeping 1200..expect RunThread to end before join");
Console.WriteLine("Join(100)..expect success");
Console.WriteLine("Join(100) success!");
Console.WriteLine("Join(100) failed");
Console.WriteLine("Done..");
public static void RunThread()
Console.WriteLine("Enter RunThread");
Console.WriteLine("Leaving RunThread");