微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

显示一个窗口15分钟后崩溃

我有一个应用程序(基于XNA项目模板),在开始时显示一个窗口,以便用户可以更改一些设置。 之后窗口closures,程序继续在由XNApipe理的另一个窗口中。 几乎正好15分钟后,程序崩溃了一个名为Win32的线程,这个线程并不是主线程(但从来没有被我产生过),并且存在访问冲突。

使用标准的debugging器甚至没有堆栈跟踪。 使用本地debugging器,它只会显示访问冲突发生在Kernel32!BaseThreadInitThunk ,这是一个未logging的方法。 同时主线程似乎仍然很乐意执行主游戏循环。

请记住,该应用程序是一个纯粹的C#应用​​程序,所以这真的让我感到困惑。

经过一些testing,我发现如果我显示一个空的窗口,甚至会发生这种情况:

如何在Linux内核中使用另一个c文件的variables?

C#窗体工作站被locking时,Microsoft窗口不会最小化

为什么我不能用LD_PRELOAD拦截bash中的write(2)?

是否有可能从缓冲区parsingpcap数据包

使用c#在远程Windows服务器上创build本地用户

Window window = new Window(); window.ShowDialog();

因此,在我的代码删除上述两行,使程序完全稳定。 将它们添加回来保证了15分钟(+ – 30秒)之后的访问冲突。

我已经检查过产生窗口的主线程是一个STA线程。 我也试着手动启动调度程序,但这似乎没有帮助(dispather似乎已经在运行),我甚至试图在我显示窗口后closures调度程序,也没有效果

我也试图用这个答案中描述的multithreading显示窗口的技术来显示窗口。 但是这也没有效果。 我甚至尝试启动一个完全独立的线程来显示窗口(使用相同的技术)。 这也没有效果

这两行代码如何在15分钟后使我的程序崩溃? 什么样的清理标准的空窗可能是必要的?

来自C中档案(.a)文件的共享库

C#从registry中获取SystemRestore的状态

如何获得Windows Phone上的可用空间使用Windows便携式设备服务apis?

检查close()中的错误的原因是什么?

这是int64_t的治疗海湾合作委员会和叮当的错误

听起来像是一个内存相关的问题,不妥善处理对象…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐