创建线程时,我们什么时候必须使用LPTHREAD_START_ROUTINE
when do we have to use LPTHREAD_START_ROUTINE when creating a thread?
我注意到这个
HandleWorker = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)this->WorkerThread, this, 0, &Id);
我知道这个问题,它解释了LPTHREAD_START_ROUTINE
类型定义线程的起始地址
但有人能向我解释一下我们什么时候必须使用它吗?我的意思是为什么我们不能只使用
HandleWorker = CreateThread(NULL, 0, this->WorkerThread, this, 0, &Id);
LPTHREAD_START_ROUTINE是一种定义为函数指针的类型,它接受一个空指针并返回一个DWORD。
如果this->WorkerThread
是那种类型的,则不必强制转换它。
相关文章:
- 在Google Kick start中提交时出错
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- C++生成文件错误"implicit entry/start for main executable"
- Valgrind 在 QThread::start() 上报告内存泄漏
- 为什么我不能调用 QMetaObject::invokeMethod(&threadObj, &QThread::start, Qt::QueuedConnection)?
- 如何将IEnumerable与Process.Start的输出事件处理程序一起使用?
- QThread start() return value
- NDK R20 LD:LD:错误:找不到-lpthread
- 在Qt中获取输出:'QProcess::start()'和'QProcess:readAllStandardOutPut()'
- Android CMake "致命错误: 'bits/libc-header-start.h' 文件未找到"
- 仅在一台计算机上出现"0xc000007b Application Unable to Start Correctly"错误
- QCamera::start给出神秘的"failed to start"日志消息
- 如何设置Visual Studio来调试DLL ("Unable to start program error")
- 一个粒子太多:GL_INVALID_VALUE生成错误。<start> 不满足着色器存储缓冲区的最低对齐要求
- 解析器名称定义为默认值:%start 后"parse"警告野牛
- ld:找不到 -lpthread 的库
- 将类方法作为 pthread start 函数传递
- 等待多个线程启动,start() 未捕获
- 为什么"Start Debugging"比VC2010中的"attach to process"慢得多?
- 给定 myvector.start() 和 myvector.end(),我想在不复制数据的情况下创建 myvector