Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让C程序在等待数据时继续?_C#_Sockets - Fatal编程技术网

C# 如何让C程序在等待数据时继续?

C# 如何让C程序在等待数据时继续?,c#,sockets,C#,Sockets,我希望创建一个程序,将创建一个套接字和接受连接。如果收到数据,它将解析数据并将其发送到另一个设备 关键是我不希望程序“等待”套接字上的数据。我希望能够坐在一个循环中,检查是否收到了数据。如果没有收到数据,继续做其他事情 我读过关于异步套接字的文章,但这似乎更适合于拥有多个连接 这是我应该去的方向吗?或者我应该寻找不同的东西 e、 g 感谢您的帮助和/或建议:调查背景员工。它们是产生另一个线程的好方法……如果不是很明显,线程独立运行,主程序不必等待它完成任务。这是我应该走的正确方向吗?是的,使用套

我希望创建一个程序,将创建一个套接字和接受连接。如果收到数据,它将解析数据并将其发送到另一个设备

关键是我不希望程序“等待”套接字上的数据。我希望能够坐在一个循环中,检查是否收到了数据。如果没有收到数据,继续做其他事情

我读过关于异步套接字的文章,但这似乎更适合于拥有多个连接

这是我应该去的方向吗?或者我应该寻找不同的东西

e、 g


感谢您的帮助和/或建议:

调查背景员工。它们是产生另一个线程的好方法……如果不是很明显,线程独立运行,主程序不必等待它完成任务。这是我应该走的正确方向吗?是的,使用套接字的最佳方式是异步。您可以使用Socket类自己的Begin/EndXXX模式,或者它的XXXAsync模式(这不是您在.NET中其他地方看到的新的基于任务的异步模式),或者GUI程序的最佳选择升级到抽象级别,并根据具体需要使用TcpClient、TcpListener或UdpClient,在这里,您可以获得一个NetworkStream,它提供了新型的基于任务的API,可与C的async/await特性一起使用。
Main()
{

while (true) {
If new data on socket then
    function1()

function2()

   }
}