如何将向量返回到 Windows 线程函数
How to Return a vector to Windows thread function?
我写了一个由函数和两个线程函数组成的库。从用户程序中,我将调用库内的函数,并将驱动器 id 作为参数。该函数根据我给出的驱动器 ID 的数量创建线程。然后,此线程函数将处理驱动器从驱动器获取文件夹列表并将其放入队列中。完成后,它将调用一定数量的线程(我用MAX_Threads初始化),这些子线程将处理队列并将驱动器内的文件列表放在相应的向量中。现在我的问题是我必须将这些向量返回到调用库的语句中。我通过许多网站进行了参考,但我没有得到预期的结果。
我实现的代码片段是..
ListFiles(string DriveId)
{
loop(no of drives)
create Threads
}
DWORD WINAPI FileList::ParThread(LPVOID s)
{
//Process Drive
directories.push_back(path + "\" + ffd.cFileName); //global queue
//it will be locked and then inserted and released by each thread
loop(Max - threads)
CreateThreads
}
DWORD WINAPI FileList::List(LPVOID s)
{
//create vector local to each thread
//create local queue that copies values from global queue and processing occurs in local queue
//inserts file name into vector
}
现在我想将这些向量返回到调用函数 ListFiles 的语句中,该语句位于库中。
库函数可以创建向量并在 LPVOID 线程参数中传递其地址。如果需要多个向量,请将它们全部放在一个结构中,并在 LPVOID 线程参数中传递结构的地址。
相关文章:
- 自 Windows 10 20H1 以来,具有单独线程的多个窗口停止工作
- 互斥,Windows 10,c ++,在一个线程上获取,在另一个线程上发布
- 多线程Windows GUI应用程序中的死锁
- 用于线程间通信的 Windows 套接字
- 如何使用 Ryzen 7 修复 Windows 上 Qt 5.9 线程的处理器关联
- 睡眠:(睡眠或usleep)并没有将我的线程中的所有内容悬挂在Linux中,而是在Windows中悬挂吗?为什么
- 另一个应用程序用 c++ 在 Windows 上的线程中破坏 QTimer
- Windows 线程池,'PTP_CALLBACK_INSTANCE':未声明的标识符
- 如何将向量返回到 Windows 线程函数
- 从 std::thread::id 结构中检索 Windows 线程标识符
- Windows 线程:并行合并排序
- 如何在Windows线程中终止线程后获取剩余线程数?C++
- 将 Windows 线程中编写的代码转换为 wxwidgets 线程
- c++作用域和Windows线程
- 确定Windows线程是否处于临界区或类似的位置
- Win32 windows线程安全吗?
- 如何让Windows线程池调用类成员函数
- 连接和终止windows线程
- Windows线程从另一个线程休眠和唤醒
- Windows线程创建过程中的内存管理