热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

尝试将StreamWriter打开到命名管道时Mono挂起

如何解决《尝试将StreamWriter打开到命名管道时Mono挂起》经验,请问有什么解决方案?

我正在编写的程序是在linux中使用FIFO管道进行进程间通信.它充其量只是hacky,但无论我遇到什么问题.

        if (!File.Exists(Path.GetTempPath() + "gminput.pipe"))
        {
            ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/usr/bin/mkfifo", Arguments = Path.GetTempPath() + "gminput.pipe", };
            Process proc = new Process() { StartInfo = startInfo, };
            proc.Start();
            proc.WaitForExit();
        }
        if (!File.Exists(Path.GetTempPath() + "gmoutput.pipe"))
        {
            ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/usr/bin/mkfifo", Arguments = Path.GetTempPath() + "gmoutput.pipe", };
            Process proc = new Process() { StartInfo = startInfo, };
            proc.Start();
            proc.WaitForExit();
        }

        using (StreamWriter outputPipe = new StreamWriter(Path.GetTempPath() + "gmoutput.pipe"))
        using (StreamReader inputPipe = new StreamReader(Path.GetTempPath() + "gminput.pipe"))
        {
            Console.WriteLine("This code is never reached!");
        }

我正在做的就是检查管道是否已经存在,如果没有,请调用mkfifo来创建它.这部分似乎工作正常,命名管道是正确创建的.每当我尝试打开它们时(使用StreamWriter,StreamReader或两者),程序就会挂起.没有错误或任何东西.它也挂在调试器中.

最好的部分是...它曾经工作过.我进行了进程间通信,然后它莫名其妙地停止了.除了你在这里看到的东西,重新启动我的系统,重新创建管道等,我注释掉了所有的东西,但没有用.是什么赋予了?我的代码有问题还是系统上的其他东西干扰了?


推荐阅读
author-avatar
坚强萝卜_854
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有