小编twi*_*ort的帖子

删除临时文件时,C#应用程序无例外退出

我在C#程序(.Net 4.61)中使用Word和Amyuni PDF套件来构建格式化的PDF文件。在此过程中,将在用户的temp文件夹中创建四个临时PDF文件:

private string TempFolder = Path.GetTempPath();
Run Code Online (Sandbox Code Playgroud)

该过程完成后,我将使用以下清除方法来删除该过程中生成的任何临时文件:

private void EraseTempFiles()
{
    // For each temp file:
    foreach (string tempFile in TempFiles)
    {
        if (File.Exists(tempFile))
        {
            File.Delete(tempFile);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

几乎所有已部署的Windows系统(所有64位Windows 7系统)上都可以运行该文件,但是在其中一些系统上,当EraseTempFiles方法删除了三个临时文件时,应用程序将立即退出。没有引发任何异常(我已经在try-catch中将File.Delete括起来以确定它)。

使用Windows资源管理器可以删除文件没有问题。

我尝试将所有临时文件保存在不同的文件夹中,并更改它们的命名方式,而不会改变行为。运行ProcDump来跟踪应用程序并没有发现任何问题,它只是报告:

[23:54:52] The process has exited.
[23:54:52] Dump count not reached.
Run Code Online (Sandbox Code Playgroud)

我还订阅了未处理的异常事件:

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionHandler);

private void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
  System.Windows.Forms.MessageBox.Show(((Exception)e.ExceptionObject).Message);
  throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

该处理程序也永远不会被调用。

我从未见过没有说明的程序退出。似乎Windows本身可能由于某种违规而终止了该进程,但是由于所有临时文件基本相同,并且我能够毫无问题地删除前两个文件,因此我无法说出是什么。

有人以前见过这种行为吗?

c# windows crash delete-file

5
推荐指数
1
解决办法
575
查看次数

如何防止 Visual Studio 编辑器在选择文本时跳上或下一行?

Windows 7 Pro SP1 上的 Visual Studio 2015。在 VS 中编辑代码时,最常见的是在编辑 XAML 时,因为行可能会很长。如果您使用鼠标拖动选择长行上的文本(编辑器中的水平滚动条部分向右滚动),并且您的光标略微向上或向下移动,并且上面或下面的行比您选择的行短正在选择时,编辑器将水平滚动条向左对齐,以显示现在(意外)包含在选择中的较短行的开头。这使得无法真正完成原始选择,因为您正在处理的文本不再可见并向右滚动。如果您按住鼠标按钮并尝试移回原始选择区域,编辑器水平和垂直滚动速度如此之快,以至于无法真正回到原来的位置。所以你必须放弃它并回去再试一次。

有什么办法可以防止这种行为吗?不那么敏感的自动滚动什么的?通常我最终通过单击我想要的开始进行选择,将水平滚动条向右滚动以查看我想要的结束,然后在我想要的结束时按住 Shift 键单击。当您进行大量编辑时,这很乏味。

scroll editor visual-studio-2015

5
推荐指数
1
解决办法
1656
查看次数

标签 统计

c# ×1

crash ×1

delete-file ×1

editor ×1

scroll ×1

visual-studio-2015 ×1

windows ×1