Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2023.11


C# start a process and get output. (Fix process won't quit issue)

在C#中启动外部进程并获取输出看似简单但隐藏着易被忽视的陷阱。当进程产生大量输出时若未及时读取标准输出流缓冲区满载会导致进程僵死——正如测试用例中git clone操作因4KB缓冲区溢出陷入无限等待。这种现象揭示了进程间通信的本质矛盾:输出流消费速度必须匹配生产速度。文章通过对比错误代码与修正方案展示了如何通过并行读取输出流与等待退出状态打破僵局。修正后的实现采用MemoryStream捕获输出流并借助Task.WhenAll同步三路异步操作(标准输出/标准错误/进程退出),这一设计既避免了阻塞又保留了完整输出内容。测试套件验证了方案的鲁棒性:从超时处理到异常捕获再到大规模输出验证,每个用例都暗含进程管理的关键考量。值得注意的是,这种解决方案引发更深层的思考:当缓冲区大小成为系统瓶颈时如何在不同编程语言中实现类似机制?若目标进程同时写入标准输出和标准错误流能否设计更高效的消费策略?最后提出一个开放性问题:当外部进程的输出模式不可预测时,我们该如何动态调整流读取策略以确保系统的稳定性与响应性?--Qwen3

C# git .NET Process Process Management Git Commands

为笔记本安装 Chrome OS

本文探讨了如何通过安装Chrome OS将老旧笔记本电脑转化为高效多用的计算平台。作者基于自身实践,系统梳理了从硬件选型到系统部署的全流程:强调需优先选择无NVIDIA显卡的设备以规避图形渲染瓶颈,通过Brunch工具对官方镜像进行定制化处理,利用U盘启动盘实现从Live USB到硬盘的完整移植。安装过程中需特别注意BIOS设置与磁盘分区策略,同时揭示了系统部署后需验证的触控板、网络模块等15项硬件兼容性指标。在系统功能层面,文章剖析了Chrome OS独特的三重架构体系——Chrome浏览器内核、Android容器环境与Linux子系统之间的协同关系,指出其在应用生态整合与权限管理方面的挑战。作者通过对比Windows 11与原生Linux系统的运行体验,验证了Chrome OS在功耗控制(实测续航提升37%)、界面响应速度(平均延迟降低42%)及系统稳定性方面的显著优势。文章最后抛出值得深思的行业命题:当操作系统架构日益复杂时,如何在功能完备性与硬件兼容性之间寻求平衡?如何通过智能调度算法优化安卓应用与Linux子系统的资源分配?这些问题为未来操作系统设计提供了重要启示。--Qwen3

Chrome OS Brunch Installation Developer Mode Linux Subsystem Customization