请问在eventselect模型中,主动关闭的套接字大家是如何从数组中删除的?

softrain 2005-12-26 02:23:04
我把主动删除的套接字放到另一个数组中,每次循环都进行检查更新套接字组,但是我觉得这样不好,是不是有别的更好的办法?
...全文
124 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
softrain 2005-12-29
  • 打赏
  • 举报
回复
wangk(倒之) 的方法很好.感觉很完美.佩服
晚上结贴.
softrain 2005-12-29
  • 打赏
  • 举报
回复
cryptonym(想裸睡)
你说大家瞎扯,说说你的高见?好象大家都不如你似的.
wangk 2005-12-29
  • 打赏
  • 举报
回复
你可以在事件数组的第一个放入一个内部事件,要清除数组数据的时候,让这个事件得到信号。
不需要等多久。即:
线程2
=>通知线程1
=>进入临界区
=>清除无效的数组数据
=>出临界区
wangk 2005-12-28
  • 打赏
  • 举报
回复
线程1
=>进入临界区
=>WSAWaitForMultipleEvents
=>出临界区

线程2
=>进入临界区
=>清除无效的数组数据
=>出临界区
hblinlin 2005-12-28
  • 打赏
  • 举报
回复
为什么海要保存啊
cryptonym 2005-12-28
  • 打赏
  • 举报
回复
瞎扯。
softrain 2005-12-28
  • 打赏
  • 举报
回复
按照 wangk(倒之) 的方法,我WSAWaitForMultipleEvents的超时时间要很短啊,不然别的线程要阻塞超时到超时啊.如果在界面线程删除,那么我只能容许0.2秒等待了?
0.2秒是用户感觉不到操作延迟的最大值时间值.
我觉得这方法不错.
wangk 2005-12-27
  • 打赏
  • 举报
回复
用临界区同步对数组的操作。
softrain 2005-12-27
  • 打赏
  • 举报
回复
我知道要动态更新,关键是如何更新的问题.
softrain 2005-12-27
  • 打赏
  • 举报
回复
一个线程阻塞在WSAWaitForMultipleEvents,另一个线程把套接字组中的一个删除,会不会出错?
大家是如何处理的呢?临界区也在这种情况下也能直接用,搞不好死锁了.
愿闻高见.
kugou123 2005-12-26
  • 打赏
  • 举报
回复
你需要动态更新那个数组的。
softrain 2005-12-26
  • 打赏
  • 举报
回复
主动关闭的线程和等待网络消息的线程不是同一个啊.
如果从数组中取消,在WSAWaitForMultipleEvents等待中的套接字数组和数目就跟等待前不同了,这样会不会出错?
oyljerry 2005-12-26
  • 打赏
  • 举报
回复
关闭后,释放掉,然后数组中去掉好了
wangk 2005-12-26
  • 打赏
  • 举报
回复
用一个独立的线程定时检查。并将线程优先置低。
nuaawenlin 2005-12-26
  • 打赏
  • 举报
回复
关闭后,就释放资源了,你还保存做什么

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧