gpt4 book ai didi

c# - 如何在C#中的同一线程上监听standard in和套接字?

转载 作者:行者123 更新时间:2023-12-03 12:06:55 26 4
gpt4 key购买 nike

我正在尝试制作一个基于网络控制台的应用程序,但是它需要能够同时监听标准输入和来自套接字的输入。在C++中,我将使用posix select()函数执行此操作,但是在C#中,the equivalent select function似乎仅用于套接字。有没有一种方法可以在不使用多个线程的情况下监听C#中的两个输入?

最佳答案

要等待多个输入,您需要为每个输入等待一个WaitHandle,然后调用静态方法WaitHandle.WaitAny

但是另一种选择是使用异步IO。使用BeginXXXX开始读取/接收操作。在每种情况下,您都提供一个回调,该回调将在完成时执行。启动它们之后,您将等待一个监视对象,并在回调中向该监视对象发出脉冲以通知完成。这是一种非常有效的多线程编程形式,但是您不必显式启动任何线程。

要获取原始Stream作为标准输入,请使用Console.OpenStandardInput

关于c# - 如何在C#中的同一线程上监听standard in和套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com