往线程里传参数的方法总结
来源:互联网 发布:淘宝如何投诉人工客服 编辑:程序博客网 时间:2024/05/17 07:36
Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。
Thread (ThreadStart) 初始化 Thread 类的新实例。
由 .NET Compact Framework 支持。
Thread (ParameterizedThreadStart, Int32) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。
Thread (ThreadStart, Int32) 初始化 Thread 类的新实例,指定线程的最大堆栈大小。
由 .NET Compact Framework 支持。
我们如果定义不带参数的线程,可以用ThreadStart,带一个参数的用ParameterizedThreadStart。带多个参数的用另外的方法,下面逐一讲述。
一、不带参数的
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Threading;
namespace
AAAAAA
{
class
AAA
{
public
static
void
Main()
{
Thread t =
new
Thread(
new
ThreadStart(A));
t.Start();
Console.Read();
}
private
static
void
A()
{
Console.WriteLine(
"Method A!"
);
}
}
}
结果显示Method A!
二、带一个参数的
由于ParameterizedThreadStart要求参数类型必须为object,所以定义的方法B形参类型必须为object。
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Threading;
namespace
AAAAAA
{
class
AAA
{
public
static
void
Main()
{
Thread t =
new
Thread(
new
ParameterizedThreadStart(B));
t.Start(
"B"
);
Console.Read();
}
private
static
void
B(
object
obj)
{
Console.WriteLine(
"Method {0}!"
,obj.ToString ());
}
}
}
结果显示Method B!
三、带多个参数的
由于Thread默认只提供了这两种构造函数,如果需要传递多个参数,我们可以自己将参数作为类的属性。定义类的对象时候实例化这个属性,然后进行操作。
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Threading;
namespace
AAAAAA
{
class
AAA
{
public
static
void
Main()
{
My m =
new
My();
m.x = 2;
m.y = 3;
Thread t =
new
Thread(
new
ThreadStart(m.C));
t.Start();
Console.Read();
}
}
class
My
{
public
int
x, y;
public
void
C()
{
Console.WriteLine(
"x={0},y={1}"
,
this
.x,
this
.y);
}
}
}
结果显示x=2,y=3
四、利用结构体给参数传值。
定义公用的public struct,里面可以定义自己需要的参数,然后在需要添加线程的时候,可以定义结构体的实例。
//结构体
struct
RowCol
{
public
int
row;
public
int
col;
};
//定义方法
public
void
Output(Object rc)
{
RowCol rowCol = (RowCol)rc;
for
(
int
i = 0; i < rowCol.row; i++)
{
for
(
int
j = 0; j < rowCol.col; j++)
Console.Write(
"{0} "
, _char);
Console.Write(
"\n"
);
}
}
- C#,往线程里传参数的方法总结
- C#往线程里传参数的方法总结
- C#,往线程里传参数的方法总结
- 往线程里传参数的方法总结
- C#WinForm 往线程里传参数的方法总结
- C#,往线程里传参数的方法总结
- 往线程里传参数的方法总结
- C#往线程里传参数的方法
- C#往线程里传递参数的方法小结
- 线程的方法里怎么才能带参数?
- C#如何在线程里调用带参数的方法
- C#线程进程总结(线程调用带参数的方法)
- 线程传参数方法
- QT线程中如何修改界面?(QT往线程里传参数)
- 在线程里运行scrapy的方法
- java里方法的参数传递
- java里方法的参数传递
- java里方法的参数传递
- 数据特征的选取
- iOS基础之----GCD多线程同步机制
- Week One
- node.js-mongodb封装分页查找
- RabbitMQ学习之Java客户端连接测试(二)
- 往线程里传参数的方法总结
- 某人的博客
- DB2创建表
- 1736:质数的后代
- Week Two
- swift -- Quartz 2D -- 绘制图层:线条, 三角形, 矩形, 圆, 弧, 扇形, 虚线等
- JavaScript在web中的简单使用(三)
- ie和谷歌添加事件的处理策略
- redis的安装部署和测试