Console.WriteLine("\n执行第3个工作池逻辑线程");
ThreadPool.QueueUserWorkItem(new WaitCallback(App.demoLogicalThreadTLSCallBack),asyncOpIsDone);
asyncOpIsDone.WaitOne();
}
static private void demoLogicalThreadTLSCallBackAcrossDomain(Object state)
{
Console.WriteLine("\n");
AppDomain child = AppDomain.CreateDomain("ChildDomain",null,null);
ObjectHandle oh = (ObjectHandle) child.CreateInstance("mydll","Demo.MyDemoObj");
Demo.MyDemoObj obj = (Demo.MyDemoObj)oh.Unwrap();
obj.demoTLS();
obj.setTLS(500);
obj.demoTLS();
((AutoResetEvent)state).Set();
}
static private void demoLogicalThreadTLSAcrossDoMain()
{
App.ShowInfo();
Console.WriteLine("\n执行第1个工作池逻辑线程");
AutoResetEvent asyncOpIsDone = new AutoResetEvent(false);
ThreadPool.QueueUserWorkItem(new WaitCallback(App.demoLogicalThreadTLSCallBack),asyncOpIsDone);
asyncOpIsDone.WaitOne();