在OSX上的Mono,Process.Start有时会引发无法处理的本机包装异常

Richthofen

所以我有一个在OSX上的Mono 3.12.0中运行的控制台应用程序。有时候,我的意思是,也许每执行100次或更多次CleanupPriorToApplicationStart(),就会得到下面的stacktrace,并且调用cleanup方法的父线程死亡。基本上,Process.Start必须包装本机代码,并且该本机代码会引发异常,至少我认为这是正在发生的事情。尽管该过程仍然存在,所以它不是完整的exit(),这使得很难知道何时发生并进行纠正。cleanup方法的日志消息中的Exception处理程序永远不会将其放置在那里,因此,无论出于何种原因,mono运行时都不会将此原生异常包装在.NET / Mono异常中,因此可以对其进行处理。这是预期的吗?有没有一种方法可以在不删除线程的情况下捕获此行为?

    protected override void CleanupPriorToApplicationStart()
    {
        try
        {
            ResetAppleMailDefaultWindowSize();
        }
        catch (Exception ex)
        {
            logger.Warning(ex, "{ApplicationName} Default Window Size reset FAILED with message", ApplicationName);
        }
    }

    private void ResetAppleMailDefaultWindowSize()
    {
        logger.Debug("{0} resetting Default Window Size", ApplicationName);
        var info = new ProcessStartInfo("defaults", " write com.apple.mail 'NSWindow Frame Torn Off Window' '13 630 1024 768 0 0 2560 1417'");

        var p = new Process {StartInfo = info};
        p.Start();
        p.WaitForExit(6.Seconds());

        logger.Debug("{0} Default Window Size reset", ApplicationName);
    }

这是控制台的输出

DEBUG - "Mail" resetting Default Window Size
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) System.Diagnostics.Process.Process_free_internal (System.Diagnostics.Process,intptr) <0xffffffff>
  at System.Diagnostics.Process.Dispose (bool) <0x0013f>
  at System.Diagnostics.Process.Finalize () <0x00018>
  at (wrapper runtime-invoke) object.runtime_invoke_virtual_void__this__ (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

更新:

由于进行了一些谷歌搜索,我想强调一点,在调用Cleanup方法之前,我明确地调用了Garbage Collection GC.Collect();

Richthofen

事实证明,垃圾回收绝对是罪魁祸首。CleanupPriorToApplicationStart()在启动GC之前,我已将呼叫移至,并且不再看到这些零星的错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有时会出现:无法在'FileReader'上执行'readAsDataURL':参数1不是'Blob'类型的

来自分类Dev

屏幕有时会在iOS上移至右侧

来自分类Dev

VueJS-有时会收到错误“未捕获的TypeError:无法读取未定义的属性'process'”

来自分类Dev

来自OSX(xsp)上.app的Process.Start问题

来自分类Dev

有时会引发NetworkOnMainThreadException

来自分类Dev

Paramiko有时会引发“ AuthenticationException”

来自分类Dev

bash脚本:在远程服务器上捕获tcp流量有时会起作用,有时会失败。没有错误

来自分类Dev

android中的Geocoder有时会在某些设备上显示“服务不可用错误”。怎么处理呢?

来自分类Dev

调用不访问空对象指针上的数据的方法有时会起作用,有时会崩溃。为什么它不总是崩溃?

来自分类Dev

在带有按钮的自定义UITableViewCell上,文本有时会消失-iOS 7

来自分类Dev

TCP / IP IOCP收到的数据有时会损坏-Windows上的Visual C ++

来自分类Dev

在Raspberry Pi上运行Docker时,启动容器有时会失败

来自分类Dev

在套接字上打印时,IO :: Socket:SSL有时会添加换行符

来自分类Dev

在Android上连接到特定的wifi有时会失败

来自分类Dev

华硕ZenBook Flip 14上的Nvidia卡有时会启动到紫色屏幕

来自分类Dev

数组操作有时会抛出“上一操作后操作无效”

来自分类Dev

SKShapeNode有时会在dealloc EXC_BAD_ACCESS上产生崩溃

来自分类Dev

华硕ZenBook Flip 14上的Nvidia卡有时会启动到紫色屏幕

来自分类Dev

在其上加载png图像时,背景图像有时会消失

来自分类Dev

MAC OS X Lion上的ssh-agent-有时会要求ssh密码

来自分类Dev

引导时,ubuntu 14.04有时会挂在紫色屏幕上

来自分类Dev

EF有时会在外键类型上返回null

来自分类Dev

Poloniex有时会在公共api方法上返回空值

来自分类Dev

为什么 next() 有时会在生成器上隐式调用?

来自分类Dev

在Ubuntu上,为什么有时有时会“ sudo apt-get”而有时却会“ sudo aptitude”?

来自分类Dev

JSONObject toString有时会引发ConcurrentModificationError

来自分类Dev

JSONObject toString有时会引发ConcurrentModificationError

来自分类Dev

从vibe.d同步执行std.process有时会无声地挂起服务器

来自分类Dev

memfd_create()给定的fd上的mmap()有时会因文件描述符错误而失败

Related 相关文章

  1. 1

    有时会出现:无法在'FileReader'上执行'readAsDataURL':参数1不是'Blob'类型的

  2. 2

    屏幕有时会在iOS上移至右侧

  3. 3

    VueJS-有时会收到错误“未捕获的TypeError:无法读取未定义的属性'process'”

  4. 4

    来自OSX(xsp)上.app的Process.Start问题

  5. 5

    有时会引发NetworkOnMainThreadException

  6. 6

    Paramiko有时会引发“ AuthenticationException”

  7. 7

    bash脚本:在远程服务器上捕获tcp流量有时会起作用,有时会失败。没有错误

  8. 8

    android中的Geocoder有时会在某些设备上显示“服务不可用错误”。怎么处理呢?

  9. 9

    调用不访问空对象指针上的数据的方法有时会起作用,有时会崩溃。为什么它不总是崩溃?

  10. 10

    在带有按钮的自定义UITableViewCell上,文本有时会消失-iOS 7

  11. 11

    TCP / IP IOCP收到的数据有时会损坏-Windows上的Visual C ++

  12. 12

    在Raspberry Pi上运行Docker时,启动容器有时会失败

  13. 13

    在套接字上打印时,IO :: Socket:SSL有时会添加换行符

  14. 14

    在Android上连接到特定的wifi有时会失败

  15. 15

    华硕ZenBook Flip 14上的Nvidia卡有时会启动到紫色屏幕

  16. 16

    数组操作有时会抛出“上一操作后操作无效”

  17. 17

    SKShapeNode有时会在dealloc EXC_BAD_ACCESS上产生崩溃

  18. 18

    华硕ZenBook Flip 14上的Nvidia卡有时会启动到紫色屏幕

  19. 19

    在其上加载png图像时,背景图像有时会消失

  20. 20

    MAC OS X Lion上的ssh-agent-有时会要求ssh密码

  21. 21

    引导时,ubuntu 14.04有时会挂在紫色屏幕上

  22. 22

    EF有时会在外键类型上返回null

  23. 23

    Poloniex有时会在公共api方法上返回空值

  24. 24

    为什么 next() 有时会在生成器上隐式调用?

  25. 25

    在Ubuntu上,为什么有时有时会“ sudo apt-get”而有时却会“ sudo aptitude”?

  26. 26

    JSONObject toString有时会引发ConcurrentModificationError

  27. 27

    JSONObject toString有时会引发ConcurrentModificationError

  28. 28

    从vibe.d同步执行std.process有时会无声地挂起服务器

  29. 29

    memfd_create()给定的fd上的mmap()有时会因文件描述符错误而失败

热门标签

归档