【发布时间】:2019-03-07 17:33:28
【问题描述】:
我是 Socket 编程和 C# 的新手。我正在尝试创建一个我正在使用 UdpClient 的应用程序。
但即使套接字上有数据,但有时Receive function 没有收到任何数据并进入阻塞状态。
只是为了防止这种情况发生阻塞,我使用了一个计数器。
接收函数在线程中。
在main function 我创建了一个计数器
int count = 0;
bool ret = IsDataReceived();
while(!ret && count < 30)
{
ret = IsDataReceived();
count++;
}
if(count>= 30)
{
thread.abort();
udpclient.close();
}
else
{
Console.WriteLine("Data Received");
}
我现在正在这样做,但我想知道如何使UdpClient 成为非阻塞的。
提前致谢。
【问题讨论】:
-
从不使用
Thread.Abort方法。它仅适用于特殊情况。如果你不知道这些情况,那你肯定不需要Thread.Abort。 -
@dymanoid 好的先生,但我没有找到其他方法
标签: c# multithreading sockets udp udpclient