using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ThreadTest
{
class Program
{
static void Main(string[] args)
{
//delegate委托, 在Thread上执行的方法,注:方法不能带参数
ThreadStart threadStart = new ThreadStart(Calculate);
Thread thread = new Thread(threadStart);
thread.Start();
//delegate委托, 在Thread上执行的方法,注:方法带参数
ParameterizedThreadStart threadStart2 = new ParameterizedThreadStart(Calculate);
Thread thread2 = new Thread(threadStart2);
thread2.Start(0.9);
//比较复杂一点的参数
AddParams ap = new AddParams(10, 10);
Thread t = new Thread(new ParameterizedThreadStart(Add));
t.Start(ap);
Console.ReadLine();
}
public static void Calculate()
{
double Diameter = 0.5;
Console.WriteLine("Way 1:The Area Of Circle with a Diameter of {0} is {1}", Diameter, Diameter * Math.PI);
}
public static void Calculate(object arg)
{
double Diameter=Convert.ToDouble(arg) ;
Console.WriteLine("Way 2:The Area Of Circle with a Diameter of {0} is {1}", Diameter, Diameter * Math.PI);
}
#region Add method
static void Add(object data)
{
if (data is AddParams)
{
Console.WriteLine("ID of thread in Main(): {0}",
Thread.CurrentThread.ManagedThreadId);
AddParams ap = (AddParams)data;
Console.WriteLine("Way 3:{0} + {1} is {2}",
ap.a, ap.b, ap.a + ap.b);
}
}
#endregion
}
class AddParams
{
public int a, b;
public AddParams(int numb1, int numb2)
{
a = numb1;
b = numb2;
}
}
}
Thread入门
最新推荐文章于 2021-06-25 10:22:18 发布