【发布时间】:2010-07-04 09:34:37
【问题描述】:
我有一个套接字,我用它来发送大缓冲区,如果我不这样做的话
// may be accsed form a a lot of threads
void Send(byte[] buffer)
{
m_socket.BeginSend(buffer ... , SendCallback);
}
void SendCallback()
{
m_socket.EndSend()
// if not done sending- send the reset
m_socket.BeginSend()
}
我的问题是:从多线程的角度来看,这会起作用,还是缓冲区会交错?
【问题讨论】:
-
您能更清楚地了解您正在使用的 API 吗?我没有看到与您的调用匹配的 Socket.Send() 重载。
-
抱歉函数名有误,我已编辑。我正在使用:public IAsyncResult BeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, AsyncCallback callback, object state);
标签: c# .net multithreading sockets networking