process.StandardOutput.ReadToEnd 卡死解決方法! 新方法!

时间:2015-10-01 17:09:11
【文件属性】:

文件名称:process.StandardOutput.ReadToEnd 卡死解決方法! 新方法!

文件大小:15KB

文件格式:7Z

更新时间:2015-10-01 17:09:11

Read 阻塞 C# 调用命令

最近做一个编程,用C#调用类似ssh,ftp,runas,adb shell之类有中间输入,中间输出的.网上说使用Process.StartInfo,Process.StandardInput,Process.StandOutput之类的,但是每次都在StandardOutput.Read/ReadToEnd卡死,原因复杂,最主要原因是微乳没有做好.下面是个分析 http://blog.163.com/boyinfo@126/blog/static/171646064201111663246435/ 看到蛋都碎了,明白了怎么回事,但不能解决问题. 网上还有很多多线程,不用Error重定向之类的,都不好用.几十行代码,只为获取几行输出?太坑爹了. 我突然发现一个非常简捷的方法.想想网上翻了好久,都找不到,有点生气.那就搞个5分.


【文件预览】:
ConsoleApplication1
----ConsoleApplication1()
--------bin()
--------Program.cs(2KB)
--------obj()
--------ConsoleApplication1.csproj(2KB)
--------Properties()
----ConsoleApplication1.suo(14KB)
----ConsoleApplication1.sln(899B)

网友评论

  • 有解决 readTOEnd 为什么会死掉。 对我没用!
  • 不错 谢谢分享
  • 下载失败,我要再下一遍
  • 什么鬼 不要异步的好么 白浪费了5分 晕
  • 已解决 ,还不错,谢谢
  • 解决了,有帮助
  • 好,有帮助
  • 还行咯,不过我自己解决掉了!
  • 没有解决 readTOEnd 为什么会死掉。 对我没用!
  • 还行吧,不过我是自己解决的
  • 在这个例子中饭,没有解决 readTOEnd 为什么会死掉。 对我没用!
  • 可以参考,已经解决问题
  • 问题已解决,谢谢!
  • 最后我自己解决了,这个东西没有解决我的问题
  • 试了一下,还是有用的。
  • 这个是msdn上的把
  • 一般,很简单的实现;
  • 还不错,不过是异步调用的,我这边不好用
  • 这个用的是异步输出,确实比同步的效果好点
  • 输出流就卡住了,后面一样会阻塞的,可以说只是提供
  • 可以参考,已经解决问题
  • 双线程异步读取ErrorStream和OutputStream才是王道啊。
  • 这个用的是异步输出,确实比同步的效果好点
  • 想法不错,但是这个方法跟不接收错误输出有啥区别,坑啊。。。
  • 确实很一般,没有考虑到如果之前的输出流就卡住了,后面一样会阻塞的,可以说只是提供了一个转向的输出方式