Un AppDomain (dominio de la aplicación), es un entorno aislado donde se ejecutan las aplicaciones.
ayudan a proporcionar aislamiento, descarga, y los límites de seguridad para la ejecución de código administrado .
Utilice los dominios de la aplicación para aislar las tareas que pueden llevar a un proceso. Si el estado del dominio de aplicación que es ejecutando una tarea se vuelve inestable, el dominio de aplicación se puede descargar sin afectando el proceso. Esto es importante cuando un proceso debe ejecutarse durante periodos largos sin reiniciar. Usted también puede usar dominios de aplicación para aislar tareas que no deben compartir los datos .
Si se carga un ensamblaje en el dominio de aplicación predeterminado, no se puede descargar mientras se está ejecutando el proceso . Sin embargo, si abre un segundo dominio de aplicación a cargue y ejecute el ensamblaje, el ensamblaje se descarga cuando se descarga ese dominio de aplicación . Use esta técnica para minimizar el funcionamiento del conjunto de de procesos de larga ejecución que ocasionalmente usan archivos DLL grandes.
dominios de aplicación múltiples se pueden ejecutar en un solo proceso; sin embargo, existe que no es una correlación uno a uno entre los dominios e hilos de la aplicación . varios hilos pueden pertenecer a un solo dominio de aplicación , y mientras que un dado hilo no se limita a un único dominio aplicación, en cualquier momento dado, un hilo ejecuta en un único dominio aplicación.
lo que las preguntas que podrían ser de interés:
no se profesan ser un experto en el área de dominios de aplicación, pero estoy bastante seguro de que un objeto COM con fuga de memoria (es decir, memoria no administrada) no será liberado por usted cargando el AppDomain.Quizás alguien más familiarizado con esto podría comentar.
Como Brian señaló, "... en la versión 2.0 de .NET Framework dominio no está garantizado para descargar, ya que podría no ser posible terminar la ejecución de subprocesos."
+1. mucho mejor que mi intento. :) –