1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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默认只提供了这两种构造函数,如果需要传递多个参数,我们可以自己将参数作为类的属性。定义类的对象时候实例化这个属性,然后进行操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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,里面可以定义自己需要的参数,然后在需要添加线程的时候,可以定义结构体的实例。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//结构体
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"
);
}
}
|