C#实现向多线程传参的三种方式实例分析

2019-12-26 14:10:32丽君

易采站长站为您分析C#实现向多线程传参的三种方式,以实例形式较为详细的分析了C#多线程及参数传递的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C#实现向多线程传参的三种方式。,具体如下:

从《C#高级编程》了解到给线程传递参数有两种方式,一种方式是使用带ParameterizedThreadStart委托参数的Thread构造函数,另一种方式是创建一个自定义类,把线程的方法定义为实例的方法,这样就可以初始化实例的数据,之后启动线程。

方式一:使用ParameterizedThreadStart委托

如果使用了ParameterizedThreadStart委托,线程的入口必须有一个object类型的参数,且返回类型为void。且看下面的例子:

 

  1. using System;  using System.Threading; 
  2. namespace ThreadWithParameters  { 
  3. class Program  { 
  4. static void Main(string[] args)  { 
  5. string hello = "hello world";  //这里也可简写成Thread thread = new Thread(ThreadMainWithParameters); 
  6. //但是为了让大家知道这里用的是ParameterizedThreadStart委托,就没有简写了  Thread thread = new Thread(new ParameterizedThreadStart(ThreadMainWithParameters)); 
  7. thread.Start(hello);  Console.Read(); 
  8. }  static void ThreadMainWithParameters(object obj) 
  9. {  string str = obj as string; 
  10. if(!string.IsNullOrEmpty(str))  Console.WriteLine("Running in a thread,received: {0}", str); 
  11. }  }