我有一个主线程接收需要一些时间的操作。所以我创建了一个线程并将工作委托给它。主线程在接收作业时调用此执行函数。每个作业都执行此执行。
Return_type execute( Arguments_here) {
// if a file read case
DWORD threadId;
HANDLE hThread = CreateThread(
NULL, // default security attributes
0, // use default stack size
MyAsyncFileRead, // thread function name
details, // argument to thread function
0, // use default creation flags
&threadId); // returns the thread identifier
// else do other work
}
现在因为我不想在主线程上等待,所以我不调用 WaitForSingleObject。[我对 Windows 线程的了解很少。所以如果这不是必需的,请原谅我]
如果我等待线程关闭,它将等待我的主线程。我不想那样做。那么我什么时候打电话给 CloseHandle ?
当一个人手头有 10 个作业并且一个创建 10 个线程然后等待所有 10 个线程完成时,那么 wait_for_multiple_objects 看起来不错,然后在每个句柄上调用 CloseHandle。
但是在这种情况下我该怎么办?
[我想这个问题与所有操作系统相关,因此也标记它们。]