澳门在线威尼斯官方 > 澳门在线威尼斯官方 > 【澳门在线威尼斯官方】往线程里传参数的方法

原标题:【澳门在线威尼斯官方】往线程里传参数的方法

浏览次数:87 时间:2019-11-01

Thread (ParameterizedThreadStart) 初阶化 Thread 类的新实例,钦赐允许对象在线程运维时传递给线程的嘱托。   
Thread (ThreadStart) 开端化 Thread 类的新实例。  
由 .NET Compact Framework 支持。  
Thread (ParameterizedThreadStart, Int32) 开首化 Thread 类的新实例,钦命允许对象在线程运维时传递给线程的信托,并点名线程的最大饭馆大小。   
Thread (ThreadStart, Int32) 领头化 Thread 类的新实例,钦赐线程的最大仓库大小。  
由 .NET Compact Framework 支持。  
  大家只要定义不带参数的线程,能够用ThreadStart,带三个参数的用ParameterizedThreadStart。带多少个参数的用别的的艺术,下边逐生龙活虎陈诉。 

 

大器晚成、不带参数的 

using System;  
using System.Collections.Generic;  
using System.Text;  
using System.Threading;  

namespace AAAAAA  
{  
  class AAA  
  {  
  public static void Main()  
  {  
  Thread t = new Thread(new ThreadStart(A));  
  t.Start();  

  Console.Read();  
  }  

  private static void A()  
  {  
  Console.WriteLine("Method A!");  
  }  
  }  
}

结果呈现Method A! 

 

二、带三个参数的  

是因为ParameterizedThreadStart供给参数类型必得为object,所以定义的艺术B形参类型必需为object。 

 

using System;  
using System.Collections.Generic;  
using System.Text;  
using System.Threading;  

namespace AAAAAA  
{  
  class AAA  
  {  
  public static void Main()  
  {   
  Thread t = new Thread(new ParameterizedThreadStart(B));  
  t.Start("B");  

  Console.Read();  
  }  

  private static void B(object obj)  
  {  
  Console.WriteLine("Method {0}!",obj.ToString ());  

  }  
  }  
}

 

结果展现Method B! 

 

三、带多个参数的  

  由于Thread暗中同意只提供了那二种构造函数,要是急需传递三个参数,我们能够团结将参数作为类的属性。定义类的靶辰时候实例化那一个个性,然后进行操作。 

 

using System;  
using System.Collections.Generic;  
using System.Text;  
using System.Threading;  

namespace AAAAAA  
{  
  class AAA  
  {  
  public static void Main()  
  {  
  My m = new My();  
  m.x = 2;  
  m.y = 3;  

  Thread t = new Thread(new ThreadStart(m.C));  
  t.Start();  

  Console.Read();  
  }  
  }  

  class My  
  {  
  public int x, y;  

  public void C()  
  {  
  Console.WriteLine("x={0},y={1}", this.x, this.y);  
  }  
  }  
}

 

结果彰显x=2,y=3 

 

四、利用结构体给参数字传送值。  

概念公用的public struct,里面能够定义自身索要的参数,然后在急需丰盛线程的时候,能够定义结构体的实例。

 

//结构体  
  struct RowCol  
  {  
  public int row;  
  public int col;  
  };  

//定义方法  
public void Output(Object rc)  
  {  
  RowCol rowCol = (RowCol)rc;  
  for (int i = 0; i < rowCol.row; i++)  
  {  
  for (int j = 0; j < rowCol.col; j++)  
  Console.Write("{0} ", _char);  
  Console.Write("n");  
  }  
  }

 

本文由澳门在线威尼斯官方发布于澳门在线威尼斯官方,转载请注明出处:【澳门在线威尼斯官方】往线程里传参数的方法

关键词:

上一篇:python模块之numpy与pandas

下一篇:没有了