简单的实例:
class Program
{
static void Main(string[] args)
{
#region 在线程中执行带参数的委托
/*
//ParameterizedThreadStart是用来指向具有一个参数的委托的
ParameterizedThreadStart parameterstart = new ParameterizedThreadStart(ShowInfo);
Thread mythread = new Thread(parameterstart);
//为方法制定参数
mythread.Start("张三");*/
#endregion
#region 如何将多个参数封装成1个参数
启动一个线程,用来执行ShowUserInfo这个方法
因为ParameterizedThreadStart委托只能接受一个object类型的参数,而ShowUserInfo方法需要两个参数,所以我们将多个参数封装成了一个对象。
//ParameterizedThreadStart parameterstart = new ParameterizedThreadStart(ShowUserInfo);
//Thread mythread = new Thread(parameterstart);
//Person p = new Person()
//{
// UserName = "张三",
// Age=20
//};
//mythread.Start(p);
#endregion
#region 如何接受在单独线程中执行的委托方法的返回值。
//int sum=Sum(1,2);
//Console.WriteLine(sum);
#endregion
Console.WriteLine("==========");
Console.ReadKey();
}
static void ShowInfo(object name)
{
Console.WriteLine("你好"+name);
}
static void ShowUserInfo(object obj)
{
Person p = obj as Person;
Console.WriteLine("{0}的年龄为{1}",p.UserName,p.Age);
}
static int Sum(int numb1, int numb2)
{
return numb1 + numb2;
}
}
class Person
{
public string UserName { get; set; }
public int Age { get; set; }
}