多线程时,遇到如下问题,锁定需要在判断时候进行
如下:
while(!g_TaskList.IsEmpt())//1
{
szTmp = g_TaskList.GetTail();//2
g_TaskList.RemoveTail(); //3
...
}其中1,2,3处的函数调用需要同时被锁定,请问大侠,该怎么处理?
非常感谢
如下:
while(!g_TaskList.IsEmpt())//1
{
szTmp = g_TaskList.GetTail();//2
g_TaskList.RemoveTail(); //3
...
}其中1,2,3处的函数调用需要同时被锁定,请问大侠,该怎么处理?
非常感谢
解决方案 »
- VC获取网页源码的时候不是丢失就是乱码,请看看是什么原因.
- c#中MessageBox.Show问题
- 用StrechBlt会出现图像失真,请问怎么解决?
- 伤心,还有什么话说,哎
- 求RSA加密算法的"C"或则"VC"的源代码(分不是问题)
- 我在编写类似网络数据包的截获与分析的程序,可是上网的时候程序会为什么会自动退出呢?
- 我就快要解决我的问题了(关于线程)。
- 如何利用网卡MAC计算软件注册码?
- 错误error C2447: missing function header (old-style formal list?)
- 关于树控件、列表控件等等的打印问题
- 江湖救急~~小弟初入江湖,涉世为生,那位大侠,拔刀相助,感恩戴德,他日结草衔环,涌泉相报
- 如何查看dll源代码?有没有这个工具。
while(!g_TaskList.IsEmpt())//1
{
szTmp = g_TaskList.GetTail();//2
g_TaskList.RemoveTail(); //3
...
}
g_TaskList.releaseLock();
如果为了效率起见你当然可以用两个锁来实现,一个增加节点的锁,一个删除节点的锁。