.NET 程序突然结束
目前我正在编写一个应用程序来记录数据。数据将集群存储到文件中。
用户或显示数据的程序可以分析该数据。通过分析大量数据,程序突然结束,即没有异常,任何其他错误消息或任务管理器中的任何进程只是不再有程序。
通过使用 perfmon 分析程序,我发现此时有大量 I/O(460 个事件/秒和 15MB/秒),正如预期的那样。从文件的不同位置读取数据是否有限制? (我正在寻找职位并阅读完整的集群。)
Currently I'm programming an application to record data. The data will be stored clustered to a file.
This data can be analyzed by the user or the program displaying the data. By analyzing large amount of data the program ends suddenly, i.e. there is no exception, any other error message or any process at the task manager just no more program.
By analyzing the program with perfmon I found lots of i/o (460 events/s and 15MB/s) at this moment as expected. Is there any limit reading data from different places of a file? (I'm seeking positions and read complete clusters.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
确保使用 try..catch 包装代码。然后在 catch 中设置断点。 (@Paolo 提出了一个很好的观点,请确保 try..catch 位于正在执行工作的线程中。)
此外,您可以尝试将 Visual Studio 设置为中断所有异常。 “调试”/“异常”/选择相关的“抛出”复选框。
另外,请尝试检查事件查看器以获取一些提示。
最后,您还可以在某些地方执行 Debug.WriteLine 或 Trace.WriteLine(尤其是在没有 Visual Studio 的系统上运行时)并使用 Sysinternals DebugView
注意:在查找源代码之后/同时确保代码生产质量(即添加日志记录、防御性编程等)的问题。
Make sure you're wrapping your code with a try..catch. Then set a break point in the catch. (@Paolo makes a good point, be sure the try..catch is in the thread that is doing the work.)
Also, you could try setting visual studio to break on all exceptions. "Debug" / "Exceptions" / Select relevant "Thrown" check boxes.
Also, try checking the Event Viewer for some hints.
Finally, you can also do Debug.WriteLine or Trace.WriteLine in certain places (esp if running on a system w/o visual studio) and monitor output with Sysinternals DebugView
Note: Be sure to make code production qual (i.e., add logging, program defensively, etc) after/while finding the source of the issue.
使用 try..catch。
订阅
AppDomain.CurrentDomain.UnhandledExceptions
。使用NLog。
观察进程的工作集。
Use try..catch.
Subscribe to
AppDomain.CurrentDomain.UnhandledExceptions
.Use NLog.
Watch the process' working set.