同步对象AA大于0时
WaitForSingleObject(A,INIFINTE),阻塞
A等于时
WaitForSingleObject(A,INIFINTE),通过使用ReleaseA(这个是我假设的函数),自减1
使用RequestA(这个是我假设的函数),自加1我的主要用途是这样的:
    一个线程监控其它线程,
    启动后阻塞,直到其它线程结束,然后做清理工作。
    可以把其它线程句柄放在一个数组HandleList
    然后WaitForMultipleObjects(HandleCount,HandleList,INIFINTE)
    但是碰到的问题是如果在线程运行后再增加一个线程,就没有办法了。因为HandleCount已经定了
   
如果没有这样同步对象,请问大家碰到这样的问题是怎么解决的。

解决方案 »

  1.   

    类似COM计数器的方法:使用一个计数器,增加县城时InterLockIncrement....或decrement这个计数器,在监视县城中对该变量进行判断。PS:这样会有一个问题,就是在监视县城判断出该变量=0,从而认为所有变量均结束时,您再去创建一个新县城并增加计数器将出现监视县城没有监视到的情况。如果您的程序保证不会出现这种情况或者该情况可以忽略,就可以采用以上方法。