您的位置:首页 > 编程语言 > C#

C# 线程调用带参数的方法

2010-12-12 09:44 399 查看
示例1:以类实现

class Program

{

static void Main(string[] args)

{

Test test = new Test("线程调用带参数的方法", "轻松搞定");

Thread thread = new Thread(new ThreadStart(test.Write));

thread.Start();

}

}

public class Test

{

private string p1;

private string p2;

public Test(string par1,string par2)

{

p1 = par1;

p2 = par2;

}

public void Write()

{

Console.WriteLine(p1);

Console.WriteLine(p2);

}

}

示例2:使用ParameterizedThreadStart //只能带一个object的参数

class Program

{

static void Main(string[] args)

{

Program pro=new Program();

Thread thread = new Thread(new ParameterizedThreadStart(pro.Write2));

thread.Start("线程调用带参数的方法");

}

public void Write2(object par)

{

Console.WriteLine(par);

}

}

示例3:使用静态变量,属性 //慎用

static void Main(string[] args)

{

Program pro=new Program();

Thread thread = new Thread(new ThreadStart(pro.Write3));

thread.Start();

}

public void Write3()

{

Console.WriteLine(Par);

}

public static string Par

{

get

{

return "线程调用带参数的方法";

}

}

class Program
{
//定义一个多参数的委托
private delegate void SayHello(params object[] obj);
private static Test test = new Test();
//把委托的方法指针指向Test类的Say方法
private static SayHello say = new SayHello(test.Say);
static void Main(string[] args)
{
//线程调用代理方法
Thread newThread = new Thread(new ThreadStart(Execute));
newThread.Start();
}

static void Execute()
{
//给Say方法传参
say("Hi", " ", "I'm", " ", "Bob");
}
}
class Test
{
public void Say(params object[] obj)
{
foreach (object o in obj)
{
Console.Write(o.ToString());
}
}
}


注:此文章转载至白衣轩

// if ($ != jQuery) {
$ = jQuery.noConflict();
}
// ]]>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: