Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改终结器策略_C#_.net - Fatal编程技术网

C# 更改终结器策略

C# 更改终结器策略,c#,.net,C#,.net,我读到并发现了这句有趣的话: 如果Finalize或Finalize的重写引发异常,则 运行时不是由覆盖默认值的应用程序托管的 策略,运行时终止进程,并且没有活动的try finally 执行块或终结器 我在谷歌上搜索了如何更改默认策略,但我仍然感到困惑: 他们是在谈论这个问题吗?但我在那里找不到任何与终结器相关的东西 这个问题似乎也不相关 我认为ASP密码策略在这里没有帮助 在有关终结器的链接文章中,Microsoft讨论的是哪项策略?我怎样才能改变它?我可以为当前正在执行的应用程序以编程

我读到并发现了这句有趣的话:

如果Finalize或Finalize的重写引发异常,则 运行时不是由覆盖默认值的应用程序托管的 策略,运行时终止进程,并且没有活动的try finally 执行块或终结器

我在谷歌上搜索了如何更改默认策略,但我仍然感到困惑:

  • 他们是在谈论这个问题吗?但我在那里找不到任何与终结器相关的东西
  • 这个问题似乎也不相关
  • 我认为ASP密码策略在这里没有帮助
在有关终结器的链接文章中,Microsoft讨论的是哪项策略?我怎样才能改变它?我可以为当前正在执行的应用程序以编程方式更改此策略吗?

注意:我并不想更改它以恢复.NET1.1终结器的行为。我只是好奇。在分析其他人的bug时,了解这些细节总是很好的。

当他们讨论:

运行时不是由覆盖默认策略的应用程序托管的

他们讨论的是一个非托管应用程序,它使用托管CLR并允许托管代码在其中运行。例如,请参见SQL Server及其应用程序

他们并不是在谈论运行中的托管应用程序可以更改的设置


具体见:

指定发生未处理异常时公共语言运行库(CLR)的行为

默认情况下,CLR是所有未处理异常的最终处理程序,其默认行为是终止进程。主机可以通过将策略值设置为
eHostDeterminedPolicy
来更改此行为。与早期版本的CLR一样,此值允许主机实现其自己的默认行为