From c90d5c0fdda735d8e207d707c4725774584ea9b2 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 24 Nov 2025 10:43:28 -0800 Subject: [PATCH 1/2] Update AppDomain notes for .NET Core and .NET 5 --- xml/System/AppDomain.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xml/System/AppDomain.xml b/xml/System/AppDomain.xml index 40325728556..865402e232d 100644 --- a/xml/System/AppDomain.xml +++ b/xml/System/AppDomain.xml @@ -97,7 +97,7 @@ Application domains, which are represented by objects, h - If an assembly is loaded into the default application domain, it cannot be unloaded from memory while the process is running. However, if you open a second application domain to load and execute the assembly, the assembly is unloaded when that application domain is unloaded. Use this technique to minimize the working set of long-running processes that occasionally use large DLLs. > [!NOTE] - > On .NET Core, the implementation is limited by design and does not provide isolation, unloading, or security boundaries. For .NET Core, there is exactly one . Isolation and unloading are provided through . Security boundaries should be provided by process boundaries and appropriate remoting techniques. + > On .NET Core and .NET 5+, the implementation is limited by design and does not provide isolation, unloading, or security boundaries. For .NET Core and .NET 5+ versions, there is exactly one . Isolation and unloading are provided through . Security boundaries should be provided by process boundaries and appropriate remoting techniques. Multiple application domains can run in a single process; however, there is not a one-to-one correlation between application domains and threads. Several threads can belong to a single application domain, and while a given thread is not confined to a single application domain, at any given time, a thread executes in a single application domain. @@ -7306,7 +7306,7 @@ The friendly name of the default application domain is the file name of the proc Beginning with the .NET Framework version 2.0, this event is raised in each application domain that registers an event handler. > [!NOTE] -> In .NET Framework, the total execution time of all event handlers is limited, just as the total execution time of all finalizers is limited at process shutdown. The default is two seconds. An unmanaged host can change this execution time by calling the [ICLRPolicyManager::SetTimeout](/dotnet/framework/unmanaged-api/hosting/iclrpolicymanager-settimeout-method) method with the [OPR_ProcessExit](/dotnet/framework/unmanaged-api/hosting/eclroperation-enumeration) enumeration value. This time limit does not exist in .NET Core. +> In .NET Framework, the total execution time of all event handlers is limited, just as the total execution time of all finalizers is limited at process shutdown. The default is two seconds. An unmanaged host can change this execution time by calling the [ICLRPolicyManager::SetTimeout](/dotnet/framework/unmanaged-api/hosting/iclrpolicymanager-settimeout-method) method with the [OPR_ProcessExit](/dotnet/framework/unmanaged-api/hosting/eclroperation-enumeration) enumeration value. This time limit does not exist in .NET Core and .NET 5+. In the .NET Framework versions 1.0 and 1.1, this event is raised only in the default application domain, and only if an event handler is registered in the default application domain. From 685a368a4446f7033048540174e775365d27cdb3 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 24 Nov 2025 11:29:06 -0800 Subject: [PATCH 2/2] Update xml/System/AppDomain.xml --- xml/System/AppDomain.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xml/System/AppDomain.xml b/xml/System/AppDomain.xml index 865402e232d..79713bf9294 100644 --- a/xml/System/AppDomain.xml +++ b/xml/System/AppDomain.xml @@ -97,7 +97,7 @@ Application domains, which are represented by objects, h - If an assembly is loaded into the default application domain, it cannot be unloaded from memory while the process is running. However, if you open a second application domain to load and execute the assembly, the assembly is unloaded when that application domain is unloaded. Use this technique to minimize the working set of long-running processes that occasionally use large DLLs. > [!NOTE] - > On .NET Core and .NET 5+, the implementation is limited by design and does not provide isolation, unloading, or security boundaries. For .NET Core and .NET 5+ versions, there is exactly one . Isolation and unloading are provided through . Security boundaries should be provided by process boundaries and appropriate remoting techniques. + > On .NET Core and .NET 5+, the implementation is limited by design and does not provide isolation, unloading, or security boundaries. These versions have exactly one . Isolation and unloading are provided through . Security boundaries should be provided by process boundaries and appropriate remoting techniques. Multiple application domains can run in a single process; however, there is not a one-to-one correlation between application domains and threads. Several threads can belong to a single application domain, and while a given thread is not confined to a single application domain, at any given time, a thread executes in a single application domain.