Cod*_*der 8 c# multithreading appdomain
如果我运行此代码,是否每个都AppDomain在不同的线程中执行?
ThreadPool.QueueUserWorkItem(delegate
{
/// Create AppDomain and run code
});
Run Code Online (Sandbox Code Playgroud)
Bri*_*sen 13
默认情况下,AppDomains不会获得自己的线程.您可以使用现有线程在另一个AppDomain中执行代码,也可以在AppDomain中调用创建新线程的方法.实际上,除非你专门创建额外的线程,否则调用另一个域中的代码将在进程的主线程上执行.
多个应用程序域可以在单个进程中运行; 但是,应用程序域和线程之间没有一对一的关联.多个线程可以属于单个应用程序域,并且虽然给定线程不限于单个应用程序域,但在任何给定时间,线程都在单个应用程序域中执行.
在您的示例中,您创建线程(或更具体地说,线程池这样做),因此代码将在这些线程上运行.但是,我不确定我是否会建议在线程池线程上创建AppDomain.
卸载AppDomain将中止AppDomain中的所有线程.老实说,我不知道线程池将如何对此作出反应.有关卸载更多信息在这里.
| 归档时间: |
|
| 查看次数: |
4485 次 |
| 最近记录: |