C# 如何创建新线程

Thread

  1. 无参数时:
  //调用方法
  Thread thread = new Thread(Method);
  thread.Start();
  private static void Method()
  {
      Console.WriteLine("这是一个新线程");
  }
  //Lambda(适用于新线程代码量很小时)
  Thread thread = new Thread(()=>{Console.WriteLine("这是一个新线程"); });
  thread.Start();
  1. 有参数时:
Thread thread= new Thread(Method);
thread.Start("123");
private static void Method(object str)//参数必须是object类型
 {
     Console.WriteLine(str + "  这是一个新线程");
 }

Task

  1. 无参数时:
 //1、直接调用方法
 Task task = new Task(Method);
 task.Start();
 private static void Method()
 {
     Console.WriteLine("这是一个新线程");
 }
 //2、Action委托 调用方法
 Action act = Method;
 Task.Run(act);
 private static void Method()
 {
     Console.WriteLine("这是一个新线程");
 }
 //3、Lambda表达式:
 Task task = new Task(()=> { Console.WriteLine("这是一个新线程"); });
 task.Start();
 //4、Task,RUN方法(也可以使用Lambda表达式)
 Task task = Task.Run(Method);
 private static void Method()
 {
     Console.WriteLine("这是一个新线程");
 }
  1. 有参数时:
//1、
Task task = Task.Run(() => Method("123"));
//2、
Task task = new Task(() => Method("123"));
tas1.Start();
//3、
Task task = Task.Run(delegate() { Method("123");});
//4、
Task task = Task.Run(new Action (()=> { Method("123"); }));

private static void Method(string str)
{
     Console.WriteLine(str+ "这是一个新线程");
}

你可能感兴趣的:(C#)