using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
delegate void WriteConsole();
static void Main(string[] args)
{
//线程的几种实现方式
//1.直接使用委托
Thread thread = new Thread(() => { Console.WriteLine("Hello Word! 啦啦啦" + $"当前线程Id:{Thread.CurrentThread.ManagedThreadId}");Console.ReadKey(); });
thread.Start();
//2.ThreadStart 传递无参方法
ThreadStart threadStart = TestWrite;
Thread threadOne = new Thread(threadStart);
threadOne.Start();
//3.ThreadStart 传递无参方法 简写
Thread threadOneNew = new Thread(TestWrite);
threadOneNew.Start();
//4.ParameterizedThreadStart 传递有参方法 只接受object参数
ParameterizedThreadStart parameterizedThreadStart = TestWirteArgs;
Thread threadTwo = new Thread(parameterizedThreadStart);
threadTwo.Start(1);
//5.委托调用线程的 普通 同步 及后台运行方法
WriteConsole writeConsole = new WriteConsole(TestWrite);
writeConsole();
writeConsole.Invoke();
writeConsole.BeginInvoke(null,null);
}
/// <summary>
/// 无参方法
/// </summary>
public static void TestWrite()
{
Console.WriteLine("Hello Word! 同步哦");
Console.ReadKey();
}
/// <summary>
/// 有参方法
/// </summary>
/// <param name="a"></param>
public static void TestWirteArgs(object a)
{
Console.WriteLine($"{a}"+"C#7.0新语法+带参方法,当前线程ID:"+$"{Thread.CurrentThread.ManagedThreadId }");
Console.ReadKey();
}
}
}
如果有不争取的欢迎大家指正,共同探讨,共同学习。