多线程参数 如何向线程传递参数?
如何向线程传递参数?
一个常见的错误是使用全局变量将参数传递给线程。事实上,这种方法的缺点是不安全、麻烦,如果要打开多个线程,甚至更麻烦。正确的方法是将线程和线程入口函数所需的参数分别封装到一个类中,必要时还可以封装一些辅助函数。这样,代码简单明了,易于重用。接下来,用一个thread类的例子来说明。首先,线程类如下:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类:线程类//--文件:clsThreadFun.cs /--德描述:这个班演示如何使用线程类。 //--作者:奈特 //--日期:3月21日, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006//然后将值赋给参数//传递参数createthread(…),…,…,(LPVOID)ss,…,…,…)
线程传入参数?
例如:[MW]shluucode=Java,true]初始化线程:Student stu=new Student()myThread myThread=new myThread(stu)myThread.start文件()//没有定义线程类myThread扩展线程{
~],线程中没有带参数的run方法。
如果要使用参数实现run方法:
1。定义线程中的变量
2。继承线程时,添加带参数的构造函数并初始化线程内的变量
3。在run方法中操作线程内的变量,以达到传递参数的类似效果。
示例:
类myThread extends Thread{int a=0//定义变量public myThread(int a){//使用参数定义构造函数以初始化线程中的变量。这个。A=A}@override public void run(){这个。A//线程中的变量自动增加}
~]//线程进程定义和参数接收
DWORD WinAPI MonitorThreadFunction(LPVOID lpParam)
{
CValidator*securityValidator=staticcast<cvalidater*>(lpParam)
while(true)
{
Sleep(5000)
securityValidator->fireValidateEvent(5)
}
/*消息框(NULL,L“thread”,L“start”,0)*/
return 0
}
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。