首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC++2003 中 主辅线程中的 同步有关问题。 帮忙看一下!

2012-01-31 
VC++2003 中 主辅线程中的 同步问题。 帮忙看一下!!我的主线程A中用到一个全局G_Array[100]变量,在A线程的R

VC++2003 中 主辅线程中的 同步问题。 帮忙看一下!!
我的主线程   A   中用到一个全局G_Array[100]变量,在A线程的RUN函数中创建B线程,B1,B2,B3,B4等子线程序,在各个子线程中也用到了G_Array[100],,,,


主线程类A   继承自   CWinThread
B线程类是继承自   CWinThread

我现在想用   CCriticalSection   同步各个线程对G_Array[100]的访问,。。。


我该怎么做呢,


CCriticalSection     critical1;

critical1.LOCK();
' ' ' ' '
critical1.UNLOCK();

是在A中   CCriticalSection     CCritical1,还是在B中??   如果在一个类中声明,那么在另外那个类中   怎么引用呢??

谢谢!!



[解决办法]
搞一个全局callback函数,把操作criticall放在里 面,多个线程同步调用访问.
[解决办法]
class CAccessSync
{
CAccessMgr()
{

}
BOOL Write(......)
{
Lock();
//写操作
UnLock();
}

BOOL Read(......)
{
Lock();
//读操作
UnLock();
}

}



[解决办法]
可以将CCriticalSection critical;放在全局,无论A或者B访问全局G_Array[100]变量,都要LOCK,用完UNLOCK

[解决办法]
当然要锁定的话,必须是针对同一个CCriticalSection了。
[解决办法]
对申明一个全局变量 CCriticalSection critical 就可以了 。

热点排行