常用的几种方法给android 线程传递参数参数

多线程如何传递多个参数_百度知道
多线程如何传递多个参数
HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter, DWORD dwCreationFlags,LPDWORD lpThreadId);
函数的原格式
现在想写个函数,CreateThread(NULL,0,(LPT...
我有更好的答案
  多线程传递多个参数可以通过以下方法来实现  typedef struct
void *arg1;
void *arg2;
} ARG;void func(void * arg1, void * arg2){
a.arg1 = arg1;
a.arg2 = arg2;
//初始化a.semaphore = 0;
pthread_create(&tid, routine, NULL, &a);
//wait a.semaphore}void* routine(void* arg){
ARG* a = (ARG *)
void* arg1 = a-&arg1;
void* arg2 = a-&arg2;
//post a.semaphore}
  参数表又称形式参数表,它包含有任意多个(含0个,即没有)参数说明项,当多于一个时其前后两个参数说明项之间必须用逗号分开。  每个参数说明项由一种已定义的数据类型和一个变量标识符组成,该变量标识符称为该函数的形式参数,简称形参,形参前面给出的数据类型称为该形参的类型。一个函数定义中的&参数表&可以被省略,表明该函数为无参函数,若&参数表&用void取代,则也表明是无参函数,若&参数表&不为空,同时又不是保留字void,则称为带参函数。
采纳率:90%
来自团队:
将参数放入结构体例如:struct someS{
// 要传递的参数};someS *ss = new someS;// 然后对参数进行赋值// 传递这些参数CreateThread(……,……,……,(LPVOID)ss,……,……);
本回答被提问者采纳
传参数:返回值:线程的返回值最好用全局变量,如果是进程间,就用事件机制。如果线程按照你预期的方式运行直到结束的话,返回值就是你的return 的值,如果出现意外情况,你的线程意外终止,这个值就难以预料了。
传结构体的指针啊
发错了,以为是c#
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
多线程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何给线程传递参数
[问题点数:40分,结帖人JingTianWen]
如何给线程传递参数
[问题点数:40分,结帖人JingTianWen]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年4月 VC/MFC大版内专家分月排行榜第一
2012年5月 VC/MFC大版内专家分月排行榜第二2012年3月 VC/MFC大版内专家分月排行榜第二2011年7月 VC/MFC大版内专家分月排行榜第二2011年1月 VC/MFC大版内专家分月排行榜第二2010年12月 VC/MFC大版内专家分月排行榜第二2010年9月 VC/MFC大版内专家分月排行榜第二2010年6月 VC/MFC大版内专家分月排行榜第二2010年5月 VC/MFC大版内专家分月排行榜第二2010年4月 VC/MFC大版内专家分月排行榜第二
匿名用户不能发表回复!|多线程参数问题(就是线程带参数,如何创建)
[问题点数:50分,结帖人kw123]
多线程参数问题(就是线程带参数,如何创建)
[问题点数:50分,结帖人kw123]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|电商供应链,仓储物流开发管理
记下,以备后查.&static&void&TestThread4()&&&&&&&&{&&&&&&&&&&&&//1.直接写方法&&&&&&&&&&&&Thread&t1&=&new&Thread(PrintMessage);&&&&&&&&&&&&t1.Start("Test&Thread1");&&&&&&&&&&&&//2.使用ParameterizedthreadStart&&&&&&&&&&&&Thread&t2&=&new&Thread(new&ParameterizedThreadStart(PrintMessage));&&&&&&&&&&&&t2.Start("Test&Thread2");&&&&&&&&&&&&//3.&使用Lambda&&&&&&&&&&&&Thread&t3&=&new&Thread(()&=&&Print("Test&Thread3"));&&&&&&&&&&&&t3.Start();&&&&&&&&&&&&//4.使用匿名函数&&&&&&&&&&&&Thread&t4&=&new&Thread(delegate()&{&Print("Test&thread4");&});&&&&&&&&&&&&t4.Start();&&&&&&&&}&&&&&&&&//只能为Object,只能有一个参数&&&&&&&&static&void&PrintMessage(object&msg)&&&&&&&&{&&&&&&&&&&&&string&sMsg&=&(string)&&&&&&&&&&&&Console.WriteLine(sMsg);&&&&&&&&&&&&Thread.Sleep(500);&&&&&&&&}&&&&&&&&static&void&Print(string&msg)&&&&&&&&{&&&&&&&&&&&&Console.WriteLine(msg);&&&&&&&&&&&&Thread.Sleep(500);&&&&&&&&}&&
阅读(...) 评论()

我要回帖

更多关于 线程传参数的方法 的文章

 

随机推荐