c#多线程调用有参数的方法
2010-08-25 23:06 田志良 阅读(2885) 评论(1) 收藏 举报将线程要执行的方法参数封装到类里面,通过实例化该类,初始化方法参数,这样就实现多线程用无参的方式调用有参的方法。
using System;
using System.Threading;
//ThreadWithState 类里包含了将要执行的任务以及执行任务的方法
public class ThreadWithState {
//要用到的属性,也就是我们要传递的参数
private string boilerplate;
private int value;
//包含参数的构造函数
public ThreadWithState(string text, int number)
{
boilerplate = text;
value = number;
}
//要丢给线程执行的方法,本处无返回类型就是为了能让ThreadStart来调用
public void ThreadProc()
{
//这里就是要执行的任务,本处只显示一下传入的参数
Console.WriteLine(boilerplate, value);
}
}
//用来调用上面方法的类,是本例执行的入口
public class Example {
public static void Main()
{
//实例化ThreadWithState类,为线程提供参数
ThreadWithState tws = new ThreadWithState(
"This report displays the number {0}.", 42);
// 创建执行任务的线程,并执行
Thread t = new Thread(new ThreadStart(tws.ThreadProc));
t.Start();
Console.WriteLine("Main thread does some work, then waits.");
t.Join();
Console.WriteLine(
"Independent task has completed; main thread ends.");
}
}
浙公网安备 33010602011771号