【发布时间】:2018-10-20 17:58:44
【问题描述】:
在通用 Windows 平台 (UWP) 应用程序中,我正在尝试使用套接字将对象发送到 Windows 窗体程序:
public void CreateListener()
{
TcpListener listener = new TcpListener(IPAddress.Any, port);
listener.Start();
while (true)
{
if (listener.Pending())
{
var childSocketThread = new Thread(() =>
{
string data = null;
var Client = listener.AcceptTcpClient();
using (NetworkStream ns = Client.GetStream())
using (StreamReader sr = new StreamReader(ns))
{
data = sr.ReadToEnd();
var Items = JsonConvert.DeserializeObject<Models.Orders>(data);
Process(Items);
ns.Flush();
ns.Close();
}
});
childSocketThread.IsBackground = true;
childSocketThread.Start();
}
else
{
Thread.Sleep(50); //<--- timeout
}
}
}
但是接收对象卡在ReadToEnd 并且永远不会退出。
我该怎么办?
【问题讨论】:
-
sr.ReadToEnd()将等待Stream关闭。因此,只要Stream没有关闭,它就会永远卡住。查看@spaceplane 引用的帖子
标签: c# uwp streamreader