Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python代码向C#GUI发送日志信息_C#_Python_User Interface - Fatal编程技术网

从Python代码向C#GUI发送日志信息

从Python代码向C#GUI发送日志信息,c#,python,user-interface,C#,Python,User Interface,我有一个正在编辑的程序,其中GUI是用C#创建的,然后用Python运行这个过程。目前,Python正在执行以下操作: SetupLog() log = logging.getLogger() log.info() 跟踪过程中的事件。有没有办法将这些信息发送回C#GUI 我还试图在C#GUI中创建一个cancel按钮,在退出/取消时将杀死Python模块,我想知道是否有比根据进程ID执行更好的方法?这是可能的,但这确实不是最好的方法 除非SetupLog函数禁用它,否则Python的默认日志记

我有一个正在编辑的程序,其中GUI是用C#创建的,然后用Python运行这个过程。目前,Python正在执行以下操作:

SetupLog()
log = logging.getLogger()
log.info()
跟踪过程中的事件。有没有办法将这些信息发送回C#GUI

我还试图在C#GUI中创建一个cancel按钮,在退出/取消时将杀死Python模块,我想知道是否有比根据进程ID执行更好的方法?

这是可能的,但这确实不是最好的方法

除非
SetupLog
函数禁用它,否则Python的默认日志记录会将日志消息打印到其stderr

在C#中运行进程有多种方法;如果您正在使用,例如,
System.Diagnostics.Process
来执行此操作,您只需将
ProcessStartInfo.RedirectStandardError
属性设置为true,然后启动流程,然后从其
StandardError
流中读取。事实上,如果你看一下MSDN文档,你会发现有很多东西正是你想要的


但是
logging
模块将添加日志头信息,您必须在C#code中解析这些信息,这是一种浪费。当然,这意味着除了与家长沟通之外,您不能使用
日志记录

如果您同时编写Python代码和C#代码,那么只使用显式匿名管道(或套接字,或命名管道,或…)并让双方都知道他们在相互交谈,而不是试图欺骗他们这样做,会更干净