gpt4 book ai didi

c# - 如何在 Windows 上向 Perl 发送信号?

转载 作者:行者123 更新时间:2023-11-30 14:41:51 24 4
gpt4 key购买 nike

我有一些建立信号处理程序的 perl 代码:

$SIG{'KILL'} = sub {
....
};

我的任务是将此移植到 Windows,我想知道如何从 C# 类生成此信号。

我在 System.Diagnostics.Process 类中看到了 Process.Kill 方法,它似乎允许我创建(通过另一种方法)并终止我的进程,但是我不知道如何让它向 perl 脚本发送信号。

最佳答案

您可能正在考虑 TERM 信号处理程序,因为无法捕获 KILL。无论如何,Windows 不使用信号,虽然它允许您使用它们,但它仅在单个线程内,不会向其他进程发送信号。

尽管您有多种其他 IPC 机制,请求另一个进程正常退出的常用机制是 PostMessage(WM_QUIT),但这实际上仅适用于 Perl 脚本通常不适用的图形应用程序

在 Windows 上得到很好支持的方法是让父进程创建一个事件(带有可继承标志)并将句柄传递给子进程,将其放入环境中对于 Perl 来说将非常方便。然后 child 可以执行一个 Action 来响应事件。

除了窗口消息和内核事件之外,您还可以使用任何套接字、管道、文件、邮槽、进程退出代码、共享内存、注册表项和 DDE 在 Windows 上的进程之间进行通信。

关于c# - 如何在 Windows 上向 Perl 发送信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com