首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取StandardOutput的C# WPF进程是间歇的

意味着在某些情况下,无法连续获取到进程的标准输出。这可能是由于进程的输出被缓冲,或者进程的输出不是实时生成的。

要解决这个问题,可以尝试以下方法:

  1. 使用异步方式获取进程的标准输出:可以使用Process.OutputDataReceived事件来异步获取进程的标准输出。首先,设置Process.StartInfo.RedirectStandardOutputtrue,然后订阅OutputDataReceived事件,并调用Process.BeginOutputReadLine()方法来开始异步读取标准输出。在事件处理程序中,可以通过e.Data获取到每行输出的内容。
  2. 设置进程的ProcessStartInfo.UseShellExecutefalse:在启动进程之前,将ProcessStartInfo.UseShellExecute属性设置为false。这样可以禁用操作系统的Shell执行,并直接通过标准输入/输出重定向来获取进程的输出。
  3. 使用Process.WaitForExit等待进程结束:在获取进程的标准输出之前,可以使用Process.WaitForExit方法等待进程执行完毕。这样可以确保进程的输出已经生成完毕,然后再获取标准输出。
  4. 考虑进程输出的缓冲区大小:如果进程的输出较大,可以通过设置ProcessStartInfo.StandardOutputEncodingProcessStartInfo.StandardOutputEncoding来调整标准输出和错误输出的缓冲区大小。

总结起来,获取StandardOutput的C# WPF进程是间歇的时,可以使用异步方式获取标准输出,禁用Shell执行,等待进程结束,调整缓冲区大小等方法来解决问题。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF 获取哪个进程占用了文件

本文告诉大家如何判断哪个进程占用了某个文件方法 本文代码从堆栈网拷贝,做了一点点魔改,请看 堆栈网回答 例如有文件 file 字符串表示文件,通过在下文定义 FileUtil WhoIsLocking...方法可以获取占用此文件进程,如下面代码 var processList = FileUtil.WhoIsLocking(file); if (processList...先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码 git init git remote add origin https://gitee.com.../lindexi/lindexi_gd.git git pull origin 1f47ed6ba169bd3e1edadd6cea5582eb15afad68 以上使用 gitee 源,如果 gitee...获取代码之后,进入 NaijanuyociDaicurfacocuyecay 文件夹

59320
  • WPF 获取应用所有窗口

    本文告诉大家如何获取应用内所有窗口,无论这些窗口有没显示 在 WPF 可以通过 Application.Current.Windows 列举应用所有窗口 foreach(Window window...in Application.Current.Windows ) { Console.WriteLine(window.Title); } 如果需要获取一个线程窗口,请看代码...一个空 WPF 程序有多少个窗口 WPF 内部5个窗口之 MediaContextNotificationWindow ---- 本文会经常更新,请阅读原文: https://...8F%A3.html ,以避免陈旧错误知识误导,同时有更好阅读体验。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后作品务必以相同许可发布。

    2.1K30

    FluentValidation在C# WPF应用

    简介unsetunset 介绍FluentValidation文章不少,零度编程(站长注:原文已失连)介绍我引用下: FluentValidation 一个基于 .NET 开发验证框架,开源免费...其实它也可以用于WPF属性验证,本文主要也是讲解该组件在WPF使用,FluentValidation官网: https://fluentvalidation.net/ 。...本文需要实现功能unsetunset 提供WPF界面输入验证,采用MVVM方式,需要以下功能: 能验证ViewModel中定义基本数据类型属性:int\string等; 能验证ViewModel中定义复杂属性...复杂属性:我遇到问题,怎么验证ViewModel中对象属性子属性?...和子属性都实现IDataErrorInfo接口,即可实现复杂属性验证,文章中没有具体实现,但灵感从这来,就不具体说该链接代码了,有兴趣可以点击链接阅读,下面贴上代码。

    17210

    Linux下获取进程PID

    Linux系统中常常需要获取进程pid进行一些操作,而Linux 交互式 Shell 与 Shell 脚本存在一定差异,主要是由于后者存在一个独立运行进程,因此在获取进程 pid 上二者也有所区别...ps 命令ps命令最常用Linux命令之一,用于获取当前系统中进程信息,ps显示瞬间进程状态,并不动态连续;如果想对进程进行实时监控应该用top命令。...ps -aux表示显示所有包含其他使用者行程,一般能够获取到比较详细进程信息了,ps -ef也表示显示所有进程信息,连同命令行。因此如果想查找一个进程,通常这两个命令就比较全面了。...交互式 Shell 获取 pid在ps命令基础上,如果我们知道进程name,那么可以利用grep来获取其pid(需要通过-v来过滤掉grep本身),并通过awk显示出来。...当然,Linux系统也支持直接查找:最简单方法使用pgrep:`pgrep -f name`如果需要查找到 pid 之后kill掉该进程,还可以使用pkill:`pkill -f name`如果可执行程序的话

    1K10

    什么进程池_进程实现

    大家好,又见面了,我你们朋友全栈君。   ...CPU在处理你线程给你感觉效率低   代码执行有两种状态   阻塞 i/o 失去CPU执行权 (CPU等待IO完成)   非阻塞 代码正常执行 比如循环一千万次 中途CPU可能切换 很快会回来...当并发量特别大时候 例如双十一     很多时候进程空闲 就让他进入进程池 让有任务处理时才从进程池取出来使用   进程池使用     ProcessPoolExecutor类     ...创建时指定最大进程数  自动创建进程     调用submit函数将任务提交到进程池中     创建进程在调用submit后发生   总结一下:     进程池可以自动创建进程     进程限制最大进程数...    自动选择一个空闲进程帮你处理任务   三、线程池   和进程池差不多,使用ThreadPoolExcecutor类 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    65310

    小知识:C#代码获取C#版本

    C#代码获取当前C#版本,疯了吧,获取它干啥?...有时候需要在没有.NET环境机器上运行C#,临时运行一下又不想装环境,这时候就可以通过在线浏览器C#环境运行C#,比如微软try.dot.net,那么怎么知道哪个C#版本呢?...低版本C#不能运行高版本C#特性,这时候就需要查询C#是什么版本了?本文将介绍如何获取C#版本。 小编在网上搜索了很多方法,貌似不能有效查询C#版本。...其实可以换个思维来获取C#版本,那就通过获取.NET版本来获取C#版本,其实每一个.NET版本都会对应支持一个最高C#版本。...结语 本文介绍如何通过.NET获取C#版本方法,希望本文对你有一点点用。这是水文一篇,你有没有获取C#版本方法,欢迎留言和吐槽。

    82930

    linux根据进程号查看进程位置信息_shell获取进程进程

    1)说明: Linux所有进程都保存在/proc/目录下,保存形式为:/proc/进程号。进入到进程号目录后,里面有一个cwd链接文件即指向进程目录。 2) 操作: A:确定进程号。...如:4874; B:查找进程执行文件。ps aux | grep 4874 C:确定进程所在目录。...ll /proc/4874; 技术交流 CleverCode一名架构师,技术交流,咨询问题,请加CleverCode创建qq群(架构师俱乐部):517133582。...加群和腾讯,阿里,百度,新浪等公司架构师交流。【架构师俱乐部】宗旨:帮助你成长为架构师! 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    6.1K20

    WPF 探索任务管理器进程分组逻辑

    本文将使用 WPF 写一个简单应用来告诉大家任务管理器进程分组策略 如下图,这是任务管理器看到 VisualStudio 界面,可以看到这个进程组里面包含很多个进程 那任务管理器将这些进程放在一个组里面的依据是什么...前台进程所直接启动后台进程逻辑含义此前台进程和对应后台进程有父子进程关系 而后台进程指的是没有前台主窗口进程,和是否控制台应用没有很大关系,如果控制台应用且有前台控制台窗口主机,依然不会被加入组内...如果子进程在启动孙进程之后,没有很快退出,那么孙进程将会被计入组里 以上策略我通过测试了解,接下来将告诉大家这个测试应用代码如何编写 先测试 前台进程所直接启动后台进程,将会放入到此前台进程所在组里面...测试方法就是通过一个带前台主窗口进程,启动另一个没有带前台主窗口进程,看看在任务管理器里面是否放在一个组里面 新建一个叫 HakewofuCayorejar WPF 应用,本文代码基于 .NET...偶尔孙进程加入到组里面,偶尔孙进程没有加入组里面 本文代码放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,

    1.3K30
    领券