我使用通過發送大量的緩衝區有一個插座,即時通訊,如果生病做類似淨異步的Socket多線程發送
// 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()重載。 – 2010-07-04 09:47:31
對不起,函數名稱錯誤,編輯過。 im使用: \t \t public IAsyncResult BeginSend(byte [] buffer,int offset,int size,SocketFlags socketFlags,AsyncCallback callback,object state); – 2010-07-04 09:59:52