Tag: 处理

.NET 1.1中未处理的exception处理程序

我正在维护一个.NET 1.1应用程序,我所负责的任务之一是确保用户没有看到任何不友好的错误通知。 我已经为Application.ThreadException和AppDomain.CurrentDomain.UnhandledException添加了处理Application.ThreadException ,它们被调用。 我的问题是仍然显示标准CLR错误对话框(在调用exception处理程序之前)。 杰夫在他的博客上和这里谈论这个问题。 但是没有解决方案。 那么.NET 1.1处理未捕获的exception并显示友好对话框的标准方法是什么? Jeff的回答被标记为正确答案,因为他提供的链接提供了有关如何执行所需操作的最完整信息。

forms时未配置定时器

我试图理解为什么在创建它的form时不会处理Windows.Forms.Timer 。 我有这个简单的forms: public partial class Form1 : Form { private System.Windows.Forms.Timer timer; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { timer = new Timer(); timer.Interval = 1000; timer.Tick += new EventHandler(OnTimer); timer.Enabled = true; } private void OnTimer(Object source, EventArgs e) { Debug.WriteLine(“OnTimer entered”); } private void Form1_FormClosed(object sender, FormClosedEventArgs […]

如何将F4密钥发送到C#中的进程?

我正在从Windows应用程序启动一个进程。 当我按下按钮时,我想模拟在该过程中按下键F4 。 我怎样才能做到这一点? [稍后编辑]我不想在我的表单中模拟按F4键,但在此过程中我开始了。

.NET对象事件和dispose / GC

编辑:在Joel Coehoorns出色的答案之后,我明白我需要更具体,所以我修改了我的代码,使其更贴近我想要了解的事情…… 事件:据我所知,在后台,事件是EventHandlers又名代表的“集合”,将在事件引发时执行。 所以对我来说这意味着如果对象Y有事件E而对象X订阅了事件YE ,那么Y将引用X,因为Y必须执行位于X中的方法,这样就不能收集X ,并且我理解的事情。 //Creates reference to this (b) in aaEventHappened += new EventHandler(this.HandleEvent); 但这不是Joel Coehoorn所说的…… 但是,事件存在问题,有时人们喜欢将IDisposable与具有事件的类型一起使用。 问题是,当类型X订阅另一个类型Y中的事件时,X现在具有对Y的引用。该引用将阻止Y被收集。 我不明白X将如何引用Y ??? 我修改了一些我的例子来说明我的情况更接近: class Service //Let’s say it’s windows service that must be 24/7 online { A _a; void Start() { CustomNotificationSystem.OnEventRaised += new EventHandler(CustomNotificationSystemHandler) _a = new A(); B b1 = new B(_a); B […]

开始新的过程,而不是产卵过程的孩子

如果不是调用进程的子进程,我将如何开始一个新进程。 例: 主程序(Caller.exe) process.start(“file.exe”) 图片:

将“Handles”从VB.NET迁移到C#

我正在将一些代码从VB.NET迁移到C#(3.5)。 我找到了以下结构: Public Event DataLoaded(ByVal sender As Object, ByVal e As EventArgs) Protected Sub Mag_Button_Load_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Mag_Button_Load.Click [..] RaiseEvent DataLoaded(Me, EventArgs.Empty) End Sub [..] ‘Other Class Private Sub LoadData(ByVal sender As Object, ByVal e As System.EventArgs) Handles oData.DataLoaded [..] End Sub 将此类行为转换为C#的最直接方法是什么?

抛出WebException但永远不会被抓住

我有以下代码: try { using (var myHttpWebResponse = (HttpWebResponse) httPrequestCreated.GetResponse()) { var streamResponse = myHttpWebResponse.GetResponseStream(); if (streamResponse != null) { var streamRead = new StreamReader(streamResponse); var readBuff = new Char[256]; var count = streamRead.Read(readBuff, 0, 256); while (count > 0) { var outputData = new String(readBuff, 0, count); finalResopnse += outputData; count = streamRead.Read(readBuff, 0, 256); […]

如何将键而不是字符发送到进程?

System.Diagnostics.Process公开名为StandardInput的StreamWriter,据我所知,它只接受字符。 但我也需要发送击键,并且一些击键不能很好地映射到角色。 我该怎么办?

如何在运行批处理文件时隐藏cmd窗口?

如何在运行批处理文件时隐藏cmd窗口? 我使用以下代码来运行批处理文件 process = new Process(); process.StartInfo.FileName = batchFilePath; process.Start();

哪种类型的例外没有捕获?

很多时候,它被提到只捕获我可以处理的exception(抛出,包装和/或记录,或执行一些其他操作)。 哪些例外无法处理? 这是不应该被抓住的意思吗? 我知道不应该捕获可能表示对象引用为null的exception,因为它们是编程错误而不是用户激发的。 还有其他例子吗? 另一个是ExecutionEngineException 。 此外,catch块中的操作过程总是在rethrow,wrap / rethrow和log之间吗? 是否存在需要在catch块中执行某些其他操作的情况? 谢谢