我做了一个程序..当鼠标移动到Button上的时候会发声
我用的playsound()函数但是有时候程序会一卡一卡的所以我把它做成多线程的了,这样是不卡了。。
但是如果快速的把鼠标在Button1 Button2 Button3.....上面移动这是从任务栏管理器就会看到好多线程有时能达到100。。而且扬声器
也会不停的播放我定义的音乐,就算不再动鼠标也要等好久才不播放音乐
线程也要好久才关闭玩。。
有什么办法解决这个问题吗?我想的:1;判断一个函数已经在某一个线程执行过了
        2;者禁止多次执行某个函数?
        3;定义某个线程只能执行一次?
可是都不会,嘻嘻。。还请指教了。

解决方案 »

  1.   

    用信号量,线程在调用此函数前先判断此信号量是否已触发,如果已触发,则不调用,否则触发此信号量并调用函数
      

  2.   

    楼上的能给我讲讲什么是信号量
    怎么用啊?最好给出代码
      

  3.   

    放个全局变量不就OK了???!!
      

  4.   

    还是不太明白...能在讲详细一点吗
      

  5.   

    互质变量,也即信号变量当绿灯亮时,汽车可以通过;
    当红灯亮时,对不起,必须等待,直到绿灯亮时。抛砖引玉,点到即止
      

  6.   

    这就是信号量阿...明白.我以为是什么呢...
    谢谢.马上结贴