纠正EventHandler告诉我记事本何时关闭
本文关键字:何时关 记事本 告诉我 EventHandler 纠正 | 更新日期: 2023-09-27 17:54:24
我有以下内容:
class Program {
static void Main(string[] args) {
Process pr;
pr = new Process();
pr.StartInfo = new ProcessStartInfo(@"notepad.exe");
pr.Disposed += new EventHandler(YouClosedNotePad);
pr.Start();
Console.WriteLine("press [enter] to exit");
Console.ReadLine();
}
static void YouClosedNotePad(object sender, EventArgs e) {
Console.WriteLine("thanks for closing notepad");
}
}
当我关闭记事本时,我没有得到我希望得到的消息-我如何修改,使关闭记事本返回到控制台?
您需要两件事-启用引发事件,并订阅退出事件:
static void Main(string[] args)
{
Process pr;
pr = new Process();
pr.StartInfo = new ProcessStartInfo(@"notepad.exe");
pr.EnableRaisingEvents = true; // first thing
pr.Exited += pr_Exited; // second thing
pr.Start();
Console.WriteLine("press [enter] to exit");
Console.ReadLine();
Console.ReadKey();
}
static void pr_Exited(object sender, EventArgs e)
{
Console.WriteLine("exited");
}
您想使用exit事件而不是dispose:
pr.Exited += new EventHandler(YouClosedNotePad);
您还需要确保EnableRaisingEvents属性设置为true:
pr.EnableRaisingEvents = true;