多线程传递参数的两种方式

1 带参数的委托方法来传递参数

static void Main(string[] args)

{

var d = new Data { Message = "中国" };

//通过带参数的委托方法来传递参数 ParameterizedThreadStart

var t2 = new Thread(ThreadMainWithParameters);

t2.Start(d);

System.Console.ReadLine();

}

static void ThreadMainWithParameters(object o)

{

Data d = (Data)o;

Console.WriteLine("Running in a thread, received {0}", d.Message);

}

2 通过成员方法和带参数的构造函数传参数 

class Program

{

static void Main(string[] args)

{

var obj = new MyThread("广东");

var t3 = new Thread(obj.ThreadMain);

t3.Start();

System.Console.ReadLine();

}

}

public class MyThread

{

private string data;

public MyThread(string data)

{

this.data = data;

}

/// <summary>

/// 线程方法

/// </summary>

public void ThreadMain()

{

Console.WriteLine("Running in a thread, data: {0}", data);

}

}

public struct Data

{

public string Message;

}

时间: 2025-01-03 18:52:06

多线程传递参数的两种方式的相关文章

hibernate createQuery查询传递参数的两种方式

String hql = "from InventoryTask it where it.orgId=:orgId"; Session session = getSession(); Query query=session.createQuery(hql); query.setString("orgId",orgId); List list = query.list(); if(list!=null&&list.size()!=0){ return

asp传递参数的几种方式

把下列代码分别加入a.asp和b.asp的<body></body>中,点提交,就可以将a.asp文本框的内容传给b.asp并显示出来 a.ASP <form action="B.asp" method="get"> <input name="ABC" type="text" /> <input name="" type="button&quo

vue-router传递参数的几种方式

vue-router传递参数分为两大类 编程式的导航 router.push 声明式的导航<router-link> 编程式的导航router.push 传递参数分为两种类型:字符串,对象 字符串 字符串的方式是直接将路由地址以字符串的方式来跳转,这种方式简单但不能传递参数 this.$router.push("home"); 对象 想要传递参数主要就是以对象的方式来写,分为两种方式:命名路由,查询参数 1.命名路由 命名路由的前提是在注册路由的地方给路由命名如: 命名路由

Delphi过程、函数传递参数的八种方式

Delphi过程函数传递参数的八种方式 Delphi过程.函数传递参数的八种方式,布布扣,bubuko.com

java 多线程之卖票两种方式

1.通过extends Thread 1 /* 2 需求:简单的卖票,多个窗口同时买票 3 (共用资源) 4 创建线程的第二种方式:实现Runnable接口 5 6 步骤: 7 1,定义类实现Runnable接口 8 2,覆盖/重写Runnable接口中的run方法 9 将将线程要运行的代码存放在该run方法中 10 3,通过Thread类建立线程对象 11 4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数 12 为什么要将Runnable接口的子类对象传递给Thr

python并发编程:多线程-开启线程的两种方式

一 threading模块介绍 multiprocess模块完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 二 开启线程的两种方式 方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print("%s say hello" % name) if __name__ == '__main__': t = Thread(target=sayhi, args=('mik

Jmeter 跨线程组传递参数 之两种方法

终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过) 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为

C++函数传递数组的两种方式

数组与指针. 传首地址过去,然后通过地址输出数组元素. 1.一维数组 #include<iostream> using namespace std; #include <cstring> void farray1(int array1[],int len)//注:此处是无法通过array1得到长度的,只能通过传参,因为其是数组首地址. { for(int i=0;i<len;i++) { //cout<<array1[i]<<endl; cout<

Java多线程——创建线程的两种方式

创建线程方式一:继承Thread类. 步骤:1,定义一个类继承Thread类.2,覆盖Thread类中的run方法.3,直接创建Thread的子类对象创建线程.4,调用start方法开启线程并调用线程的任务run方法执行. 可以通过Thread的getName获取线程的名称 Thread-编号(从0开始)主线程的名字就是main. 例: class Demo extends Thread { private String name; Demo(String name) { super(name)