如何在c/c++程序中用createthread函数创建新线程播放音乐与主线程同时运行
时间: 2024-02-13 16:07:44 浏览: 105
C++实现CreatThread函数主线程与工作线程交互的方法
可以使用Windows API中的CreateThread函数来创建新线程,同时在新线程中播放音乐,而主线程可以继续运行其他操作。
以下是示例代码:
```c++
#include <windows.h>
#include <mmsystem.h> // 用于播放音乐
DWORD WINAPI PlayMusic(LPVOID lpParam) // 新线程函数
{
PlaySound(TEXT("music.wav"), NULL, SND_FILENAME); // 播放音乐
return 0;
}
int main()
{
HANDLE hThread;
DWORD threadId;
hThread = CreateThread(NULL, 0, PlayMusic, NULL, 0, &threadId); // 创建新线程
// 主线程继续执行其他操作
WaitForSingleObject(hThread, INFINITE); // 等待新线程结束
CloseHandle(hThread); // 关闭线程句柄
return 0;
}
```
在上面的代码中,CreateThread函数用于创建新线程,第一个参数是线程的安全属性,可以设置为NULL,第二个参数是线程堆栈的大小,也可以设置为0,第三个参数是线程函数,即PlayMusic函数,第四个参数是传递给线程函数的参数,这里设置为NULL,第五个参数是线程的创建标志,可以设置为0,最后一个参数是指向线程标识符的变量,可以为NULL。
在PlayMusic函数中,使用PlaySound函数来播放音乐,第一个参数是音乐文件名,第二个参数是模块句柄,这里设置为NULL,第三个参数是播放标志,可以设置为SND_FILENAME表示按文件名播放。
在主线程中,可以继续执行其他操作,使用WaitForSingleObject函数来等待新线程结束,以确保音乐播放完毕,最后使用CloseHandle函数关闭线程句柄。
阅读全文