private EventWaitHandle Logon = new EventWaitHandle(false, EventResetMode.AutoReset);for(int i =0; i <sentinfo.count; i )
{
SendStr(Client, sentinfo[i]);//发送登录信息,等待服务端返回结果之后,取数据后,进行下一个登录
Logon .WaitOne();//等待收到数据Logon .Set();
}登录是异步接收数据,收到数据后Logon .Set();我这里是多个用户登录问题,只能登录一次,就会阻塞,异步接收数据也会阻塞,等于整个阻塞了。
我这种情况怎么解决? 多次就不可以了。怪了
{
SendStr(Client, sentinfo[i]);//发送登录信息,等待服务端返回结果之后,取数据后,进行下一个登录
Logon .WaitOne();//等待收到数据Logon .Set();
}登录是异步接收数据,收到数据后Logon .Set();我这里是多个用户登录问题,只能登录一次,就会阻塞,异步接收数据也会阻塞,等于整个阻塞了。
我这种情况怎么解决? 多次就不可以了。怪了
sendstr()
{
开始
Logon .WaitOne
}
for循环中用用Logon .Set或者就是用AsyncCallback+委托来处理异步
在收到服务端返回结果进行set在循环外部使用WaitAll,这样所有事件都set后,WaitAll才能通过。