创建线程的函数
internal class MultiThread
{
/// <summary>
/// 线程的工作函数类型
/// </summary>
public delegate void WorkProc();
/// <summary>
/// 创建进程的函数
/// </summary>
/// <param name="work">进程要执行的函数</param>
/// <param name="tName">进程的名称</param>
public static void CreateWorkThread(WorkProc work, string tName)
{
Thread thread = new Thread(new ThreadStart(work)); // 创建一个新线程,指定线程要执行的方法为 Work
thread.Name = tName; // 设置线程的名称为 tName
thread.IsBackground = true; // 将线程设置为后台线程,这意味着当主线程结束时,该线程也会被终止
thread.Start(); // 启动线程,使其开始执行指定的工作方法
}
}
调用函数
public static void TestTryEnter1()
{
for (int i = 0; i < 10; i++)
{
MultiThread.CreateWorkThread(Work, $"线程{i + 1}");
}
}
主函数
class Program
{
static object lockObj = new object(); // 可以正常使用
// static bool lockObj; // 不可以正常使用,下面运行效果2
// static bool lockObj = false; // 不可以正常使用,下面运行效果2
public static void Main()
{
TestTryEnter1();
Console.WriteLine("按下Enter键退出主线程!");
Console.ReadLine();
}
}
运行效果1
运行效果2