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

Beep 为何在发声的时候程序会卡

2013-02-24 
Beep 为啥在发声的时候程序会卡button执行该语句Beep后程序会卡住,开启一个线程执行该语句也会如此,怎么解

Beep 为啥在发声的时候程序会卡
button执行该语句Beep后程序会卡住,开启一个线程执行该语句也会如此,怎么解决呢
for(int i=0;i<50;i++)
{
Beep(600,6000)
Sleep(500);
}
笔记本 VS2010,求解!
[解决办法]
本帖最后由 hdt 于 2013-01-24 21:27:59 编辑 BOOL WINAPI Beep(
  __in          DWORD dwFreq,
  __in          DWORD dwDuration
);

Parameters
dwFreq 
The frequency of the sound, in hertz. This parameter must be in the range 37 through 32,767 (0x25 through 0x7FFF). 

Windows Me/98/95:  The Beep function ignores this parameter.
dwDuration 
The duration of the sound, in milliseconds. 


[解决办法]
Generates simple tones on the speaker. The function is synchronous; it performs an alertable wait and does not return control to its caller until the sound finishes.

来自msdn:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679277(v=vs.85).aspx
[解决办法]
我用C#写的,没卡主啊。



        private void button1_Click(object sender, EventArgs e)
        {

            ThreadStart starter = new ThreadStart(ThreadFunc);
            Thread thread = new Thread(starter);

            thread.Start();
        }

        private void ThreadFunc()
        {
            for (int i = 0; i < 3; i++)
            {
                Beep(600, 6000);
                System.Threading.Thread.Sleep(500);
            }

            MessageBox.Show("thread finish");
        }


        [DllImport("kernel32.dll")]
        public static extern bool Beep(int freq, int duration);

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("clicked");
        }

热点排行