(1) 如何向线程对应的函数传递参数?一个参数如何传递,多个参数如何传递? (2) 深入理解线程与进程的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(1) 如何向线程对应的函数传递参数?一个参数如何传递,多个参数如何传递? (2) 深入理解线程与进程的相关的知识,希望对你有一定的参考价值。
构造一个结构体,其中的成员即为想要传递的参数类型。实例化一个结构体变量obj,将指向该结构体变量obj的指针赋给lpParameter即可。简单举例:
。。。。。
struct DATA
int a;
int b;
int c;
;
DATA d = 1,2,3;
void ThreadName1(LPVOID lpParameter);
static HANDLE hHandle1=NULL;
DWORD dwThreadID1;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
int nRetCode = 0;
hHandle1=CreateThread((LPSECURITY_ATTRIBUTES)NULL,0,(LPTHREAD_START_ROUTINE)ThreadName1,(LPVOID) &d ,0,&dwThreadID1);
CloseHandle(hHandle1);
ExitThread(0);
return nRetCode;
void ThreadName1(LPVOID lpParameter)//参数为int型,传参成功
DATA *p = (DATA *)lpParameter;//类型转换
printf("a = %d\n",p->a);
printf("b = %d\n",p->b);
printf("c = %d\n",p->c);
....
即可实现多参数的传递。 参考技术A 我不知道,但我知道你是谁了!我也想知道这个答案追问
额,什么啊,你是谁啊?
向 Q_Object 构造函数添加参数
【中文标题】向 Q_Object 构造函数添加参数【英文标题】:Adding parameters to Q_Object constructor 【发布时间】:2017-04-28 03:08:06 【问题描述】:当我在 Qt Creator 中创建一个新的 Q_OBJECT
类时,它会生成这个默认构造函数。我想添加另一个参数以便我可以传递用户输入,但我不确定如何执行此操作,因为QObject
是第一个参数并且不知道如何跳过第一个参数并在@987654323 上传递用户输入@参数。
如何采用此默认值:
public:
explicit renderJob(QObject *parent = 0);
这样做
public:
explicit renderJob(QObject *parent = 0,QString userInput);
【问题讨论】:
【参考方案1】:在C++
中,如果您放置默认参数,这些参数应位于最后位置。此外,应该将 QObject 参数传递给基类构造函数。例如:
class renderJob: public BaseObjectClass
Q_OBJECT
public:
explicit renderJob(QString userInput, QObject *parent = 0);
[...]
renderJob::renderJob(QString userInput, QObject *parent):
BaseObjectClass(parent)
[...]
【讨论】:
以上是关于(1) 如何向线程对应的函数传递参数?一个参数如何传递,多个参数如何传递? (2) 深入理解线程与进程的的主要内容,如果未能解决你的问题,请参考以下文章