才行
不知道你emit了没~~
子线程的run()里,你好赖也得加个exec()吧,要不无事件循环,制能收到你的signal?
你说的传递出去是传递给主线程吗,如果是的话那就很简单,因为同一个进程的线程之间共享一个堆栈的,你只需要定义一个全局变量,主线程和子线程都能访问到。但是这样你就需要注意访问这个全局变量的时候的访问冲突问题,一般这种问题是通过互斥锁解决的,也就是在访问全局变量之前先加锁,访问完了释放锁。2 线程的使用2.1 定义线程处理函数
DWORD WINAPI ThreadProc(
LPVOID lpParameter
//创建线程时,传递给线程的参数
)
2.2 创建线程
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
//安全属性
SIZE_T dwStackSize,
//线程栈的大小
LPTHREAD_START_ROUTINE lpStartAddress,
//线程处理函数的函数地址
LPVOID lpParameter,
//传递给线程处理函数的参数
DWORD dwCreationFlags,
//线程的创建方式,
LPDWORD lpThreadId
//创建成功,返回线程的ID
)创建成功,返回线程句柄
dwCreationFlags:
0 - 创建之后线程立刻执行
CREATE_SUSPENDED - 创建之后线程处于挂起状态。
2.3 结束线程
结束指定线程
BOOL TerminateThread(
HANDLE hThread,// handle to thread
DWORD dwExitCode // exit code
)
结束函数所在的线程
VOID ExitThread(
DWORD dwExitCode // exit code for this thread
)
2.4 关闭线程句柄
CloseHandle
LZ用fork()那不是多线程,是多进程了,你这个不需要多进程的,多线程就可以可以了,原理和linux一样只是函数名改一改就可以了,