【发布时间】:2012-10-09 13:17:25
【问题描述】:
我在让 sslstream 处理一个接一个地发送多条消息时遇到了一些麻烦。
我打电话给我的客户发送数据的方式
client.Send(objectOne);
client.Send(objectTwo);
我收到的错误信息是:
The BeginWrite method cannot be called when another write operation is pending
我已经尝试了不同的解决方案来让它工作,但没有一个能让它工作。
基础函数使用 await,然后调用该函数
// client send
public void Send(object data)
{
byte[] sendData = SerializationHelper.Serialize(data);
base.Send(sendData);
}
// base send
protected async void Send(byte[] data)
{
await stream.WriteAsync(data, 0, data.Length);
}
基函数返回一个任务,并在客户端方法中使用await
// client send
public async void Send(object data)
{
byte[] sendData = SerializationHelper.Serialize(data);
await base.Send(sendData);
}
// base send
protected async Task Send(byte[] data)
{
await stream.WriteAsync(data, 0, data.Length);
}
我仍然收到同样的错误,有人知道如何让它工作吗?
【问题讨论】: