草庐IT

appDomain

全部标签

c# - 如何检测应用程序何时终止?

这是我的initialquestion的跟进我想介绍我的发现并寻求更正、想法和见解。我的发现(或者更确切地说是解释)来自人们对我之前问题的回答,阅读MSDN.NET3.5文档和调试.NET3.5代码。我希望这对像我一样想知道如何检测应用程序何时终止的人有值(value)。事件:System.AppDomain.CurrentDomain.ProcessExit:在进程退出时引发,例如在默认的AppDomain之后,其他所有东西都被卸载了[总执行时间限制在3秒内!]。对于WPF,请改用System.Windows.Application.Exit。对于Windows窗体,在main方法中

c# - C#中AppDomain的使用

AppDomains在C#中最重要的用途是什么? 最佳答案 最重要的用途是您的代码必须有一个-即您用C#编写的所有内容都在AppDomain中执行。这很重要;-p如果您的意思是其他应用程序域:当使用插件和其他不受信任的代码时,它允许您隔离并卸载它们(您不能卸载程序集-只能卸载整个应用程序域)。我目前正在使用它来加载动态生成的dll,以便我可以卸载它们。它们还允许您设置不同的配置文件、信任级别等-但具有相关的复杂性和远程处理成本。MSDN有一个关于应用程序域的部分,here. 关于c#-C

c# - C#中AppDomain的使用

AppDomains在C#中最重要的用途是什么? 最佳答案 最重要的用途是您的代码必须有一个-即您用C#编写的所有内容都在AppDomain中执行。这很重要;-p如果您的意思是其他应用程序域:当使用插件和其他不受信任的代码时,它允许您隔离并卸载它们(您不能卸载程序集-只能卸载整个应用程序域)。我目前正在使用它来加载动态生成的dll,以便我可以卸载它们。它们还允许您设置不同的配置文件、信任级别等-但具有相关的复杂性和远程处理成本。MSDN有一个关于应用程序域的部分,here. 关于c#-C

c# - Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 之间有什么区别?

好吧,这是一个简单的:Application.ThreadException和AppDomain.CurrentDomain.UnhandledException有什么区别>?我需要同时处理这两者吗?谢谢! 最佳答案 Application.ThreadException特定于Windows窗体。Winforms运行事件处理程序以响应Windows发送给它的消息。例如Click事件,我相信你知道它们。如果这样的事件处理程序抛出异常,则Winforms消息循环内会有一个后退停止器来捕获该异常。那个backstop触发了Applicat

c# - Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 之间有什么区别?

好吧,这是一个简单的:Application.ThreadException和AppDomain.CurrentDomain.UnhandledException有什么区别>?我需要同时处理这两者吗?谢谢! 最佳答案 Application.ThreadException特定于Windows窗体。Winforms运行事件处理程序以响应Windows发送给它的消息。例如Click事件,我相信你知道它们。如果这样的事件处理程序抛出异常,则Winforms消息循环内会有一个后退停止器来捕获该异常。那个backstop触发了Applicat

c# - 如何使用所有引用递归地将程序集加载到 AppDomain?

我想加载到一个新的AppDomain一些具有复杂引用树的程序集(MyDll.dll->Microsoft.Office.Interop.Excel.dll->Microsoft.Vbe.Interop.dll->Office.dll->stdole.dll)据我所知,当程序集被加载到AppDomain时,它的引用不会自动加载,我必须手动加载它们。所以当我这样做时:stringdir=@"SomePath";//differentfromAppDomain.CurrentDomain.BaseDirectorystringpath=System.IO.Path.Combine(dir,"

c# - 如何使用所有引用递归地将程序集加载到 AppDomain?

我想加载到一个新的AppDomain一些具有复杂引用树的程序集(MyDll.dll->Microsoft.Office.Interop.Excel.dll->Microsoft.Vbe.Interop.dll->Office.dll->stdole.dll)据我所知,当程序集被加载到AppDomain时,它的引用不会自动加载,我必须手动加载它们。所以当我这样做时:stringdir=@"SomePath";//differentfromAppDomain.CurrentDomain.BaseDirectorystringpath=System.IO.Path.Combine(dir,"

.net - AppDomain 地址空间

首先,问题是:CLR规范是否保证在同一进程内的多个应用程序域中执行的代码将共享相同的地址空间?“共享地址空间”是指指向在某个应用程序域中分配的内存的指针对于在同一进程内托管的所有应用程序域进行读写都是有效的。考虑这个说明问题的独立示例:程序在单独的应用程序域中分配一个Worker对象。Worker为10,000个整数分配一个内存块,并用数据填充它。然后程序跨应用程序域边界调用以获取指向已分配block的指针,并验证它是否可以读取10,000项中的每一项。usingSystem;usingSystem.Reflection;usingSystem.Runtime.InteropServi

.net - AppDomain 地址空间

首先,问题是:CLR规范是否保证在同一进程内的多个应用程序域中执行的代码将共享相同的地址空间?“共享地址空间”是指指向在某个应用程序域中分配的内存的指针对于在同一进程内托管的所有应用程序域进行读写都是有效的。考虑这个说明问题的独立示例:程序在单独的应用程序域中分配一个Worker对象。Worker为10,000个整数分配一个内存块,并用数据填充它。然后程序跨应用程序域边界调用以获取指向已分配block的指针,并验证它是否可以读取10,000项中的每一项。usingSystem;usingSystem.Reflection;usingSystem.Runtime.InteropServi

c# - 应用程序域用于什么?

我大致了解AppDomain是什么,但我不完全了解AppDomain的用途。我参与了一个基于大型服务器的C#/C++应用程序,我想知道如何使用AppDomains来提高稳定性/安全性/性能。特别是:我了解一个域中的故障或致命异常不会影响在同一进程中运行的其他应用程序域-这是否也适用于非托管/C++异常,甚至可能是堆损坏或其他内存问题。AppDomain之间的通信如何工作?使用AppDomain与简单地生成多个进程有何不同? 最佳答案 AppDomain的基本用例是在托管第3方代码的环境中,因此不仅需要动态加载程序集还需要卸载它们。无