111,130
社区成员
发帖
与我相关
我的任务
分享
object[] return = new object[methodCount];
(object[])new Thread(delegate(object ret)
{
object[] rets = (object[])ret;
rets[0]=Method1(a,b);
rets[1]=Method2(c,d);
rets[2]=Method3(e,f)};
//...
}).Start(return);
ParameterizedThreadStart ParStart = new ParameterizedThreadStart(ThreadMethod);
Thread myThread = new Thread(ParStart);
object o = "hello";
myThread.Start(o);
//ThreadMethod如下:
public void ThreadMethod(object ParObject)
{
//程序代码
}
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.");
}
}