110,570
社区成员
发帖
与我相关
我的任务
分享
ClientWebSocket 客户端 = new ClientWebSocket();
bool 开关 = true;
async void 启动()
{
await 主客户端.ConnectAsync(new Uri("***"), CancellationToken.None);
监听();
}
async void 监听()
{
Byte[] 缓冲 = new Byte[8192];
while (开关)
{
WebSocketReceiveResult 结果 = await 主客户端.ReceiveAsync(new ArraySegment<Byte>(缓冲), CancellationToken.None);
解析(Encoding.Default.GetString(缓冲, 0, 结果.Count));
}
}
void 关闭()
{
开关 = false;
客户端.Abort();
}
我原本以为调用 关闭() 就关闭了。但是调试发现执行到 客户端.Abort() 时,程序还在等待ReceiveAsync 的结果,导致异常。正确的关闭方法是怎样的呢?请教。