解决方案 »
- 我的菜单怎么就弹不出来? 求高手帮帮忙!!
- 如何把jcharArray轉成char[],請給源代碼?
- 我的机器上已经装了.net系统,可不可以再装上vc.6?(急,马上就想装)
- 请教:如何调用Windows中的曲线字库。
- DLL求助
- 怎么让listbox有水平滚动条?
- 怎样只改变按纽的背景????
- VB中可以通过 refenerce ms word 9.0 object 来引入word对象库,在VC中如何引入?
- 我没有分了大家多包涵,我创建了一个非模式对话框,怎么这个对话框只是一闪而过。
- 如何修改每个模板对应的标题 if(str == _T("········"))
- 我在win8下SetupDiCallClassInstaller调用该API,可是失败
- xml中定义的标签存在警告怎样消除?
建议搜下“socket五种IO模型”
2.在你程序初始化时初始化临界区变量g_cs ,InitializeCriticalSection(&cs) 可以放在InitialDialog()或InitInstance()里
3.之后在你每个客户端发送线程的send()函数前加EnterCriticalSection(&cs) ;//加锁,发送逻辑完毕后在send()后加 LeaveCriticalSection(&cs);//解锁,这样就可以保证当一个客户端线程在访问全局视频流缓冲时,其他线程均处于等待状态,一旦
某个线程释放了锁,其他线程就会立刻得到这把锁,然后开始send(),相比之下,这种同步方式其实和SetEvent差不多,只是逻辑会
比较清晰一些
4.由于你只是读取数据进行发送,不会修改全局缓冲的值,这样的话不用线程同步也是可以的,所有线程可以同时发送,这样效率会高很多