- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace empty
{
class Program
{
static Program()
{
AppDomain.CurrentDomain.ProcessExit += ExitHandler;
}
static void Main(string[] args)
{
}
static void ExitHandler(object o, EventArgs args)
{
using (FileStream fs = new FileStream("file.bin", FileMode.Create))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, new double[30000000]);
}
using (FileStream fs = new FileStream("file.bin", FileMode.Create))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, new double[30000000]);
}
Console.WriteLine("end");
}
}
}
我期望得到输出:“结尾”但什么也得不到。我做错了什么?
我有意使用 2 个序列化,因为 1 个序列化不会发生这种行为。
最佳答案
如果你看the documentation for ProcessExit
,你会发现这个:
The total execution time of all ProcessExit event handlers is limited, just as the total execution time of all finalizers is limited at process shutdown. The default is two seconds.
因此,如果您在该处理程序中执行的任何操作花费的时间超过两秒,则它不会完全执行。这似乎正是您遇到的问题。
关于c# - AppDomain.CurrentDomain.ProcessExit 不执行 Console.WriteLine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341682/
有一个 EXE,它隐式加载一些 DLL 和其他显式加载 (LoadLibrary)。此 EXE 正在执行其 ExitProcess(剩余进程中的 1 个线程)并作为忙于卸载 DLL 的一部分,例如 A
我正在处理一个错误,在该错误中,代码并不总是在应用程序关闭之前执行。该代码位于 AppDomain.CurrentDomain.DomainUnload 事件的处理程序中。 我找到了一个有同样问题的人
using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace empty
我想在进程关闭时在库中进行一些清理,DotNet Core 的替代方案是什么?在 .Net Framework 4 中,我使用了 AppDomain.CurrentDomain.ProcessExit
正如标题所示,ProcessProtocol 类上的这两个函数有什么区别?关于什么时候应该使用一种而不是另一种的文档有点稀疏? 我最好寻找一些可以证明这一点的用例示例。 最佳答案 我猜文档在这一点上有
考虑类,利用 Apache Ignite.NET 库 public interface ICluster { void Join(); void Leave(); } public c
我是一名优秀的程序员,十分优秀!