多线程的使用

xiaoxiao2021-02-28  22

多线程无参和有参的处理

static void Main(string[] args) { Thread thread1 = new Thread(new ThreadStart(PrintNumbers)); //无参数的委托 thread1.Start(); Thread thread2 = new Thread(new ParameterizedThreadStart(PrintTexts)); //有参数的委托 } static void PrintTexts(object text) { Console.WriteLine("Starting..." + text); } static void PrintNumbers() { Console.WriteLine("Starting..."); for (int i = 0; i < 10; i++) { Console.WriteLine(i); } }

有多个参数直接使用类来当参数传过去

class AddParams { public int a, b; public AddParams(int numb1,int numb2) { a = numb1; b = numb2; } } class Program { static void Main(string[] args) { Console.WriteLine("添加对象"); Console.WriteLine("线层方法运行ID:{0}", Thread.CurrentThread.ManagedThreadId); AddParams ap = new AddParams(10, 10); Thread t = new Thread(new ParameterizedThreadStart(Add)); t.Start(ap); Console.ReadLine(); } static void Add(object data) { if(data is AddParams) { Console.WriteLine("线层运行ID:{0}", Thread.CurrentThread.ManagedThreadId); AddParams ap = (AddParams)data; Console.WriteLine("{0}+{1} is {2}", ap.a, ap.b, ap.a + ap.b); } } }

也可以直接这样写

Counter c1 = new Counter(); var t1 = new Thread(() => TestCounter(c1)); static void TestCounter(Counterc) { .... }
转载请注明原文地址: https://www.6miu.com/read-2627067.html

最新回复(0)