【发布时间】:2010-09-11 01:17:51
【问题描述】:
我有一些建立信号处理程序的 perl 代码:
$SIG{'KILL'} = sub {
....
};
我的任务是将它移植到 Windows,我想知道如何从 C# 类生成这个信号。
我在System.Diagnostics.Process 类中看到了Process.Kill 方法,它似乎允许我创建(通过另一种方法)并终止我的进程,但我不知道如何让它向perl 发送信号脚本。
【问题讨论】:
-
你是说使用C#中的
Process.Kill不会触发你分配给$SIG{'KILL'}的Perl代码吗? -
不,当然不会触发。
Process.Kill致电TerminateProcess。但是杀死一个进程不会导致目标进程中的用户代码在 any 操作系统上运行(当句柄自动关闭时,驱动程序代码可能仍会运行)。kill -9 <pid>和TerminateProcess非常类似于大脑中的子弹。无法回复。