我无法弄清楚为什么会这样.
我有一个正常的连接方法:
public void Connect()
{
_client.BeginConnect(new AsyncCallback(this.ConnectCallback), _client);
}
public void ConnectCallback(IAsyncResult asyncResult)
{
ServerClient callback = null;
callback = (ServerClient)asyncResult.AsyncState;
callback.EndConnect(asyncResult);
Program.IMMainForm.BeginInvoke(new frmMain.ConnectionEstablishedNotification(Program.IMMainForm.ConnectionEstablished));
Run Code Online (Sandbox Code Playgroud)
这完全没问题.我几乎复制并粘贴了我的Send方法的代码:
public void Send(string code, string data)
{
_client.BeginSendToServer((code + data), new AsyncCallback(this.SendCallback), _client);
}
public void SendCallback(IAsyncResult asyncResult)
{
ServerClient callback = null;
callback = (ServerClient)asyncResult.AsyncState;
callback.EndConnect(asyncResult);
}
Run Code Online (Sandbox Code Playgroud)
但是,它在EndConnect行上出错,并带有错误
"Async End使用来自不同Begin方法的IAsyncResult调用.参数名称:结果"
话
mscorlib.dll中发生了'System.ArgumentException'类型的第一次机会异常
我不是100%处于异步的东西,所以有什么明显的我做错了吗?