关于对线程的理解 :
举例:
threadDownLoadParameter = new Thread(new ThreadStart(parameterInterface.downParameterLoadData));
new Thread(new ThreadStart(parameterInterface.downParameterLoadData)):这是创建新线程的部分。它使用 Thread 类的构造函数来初始化一个新线程。ThreadStart 委托是一个委托类型,它接受一个无参数无返回值的方法,这个方法通常用于线程的执行体。它引用了 parameterInterface.downParameterLoadData 方法,因为该方法没有参数和返回值,正好符合 ThreadStart 的要求。
parameterInterface.downParameterLoadData:这是指定要在新线程中执行的方法。parameterInterface 是一个对象,而 downParameterLoadData 是该对象的一个方法。这行代码告诉新线程在后台执行 downParameterLoadData 方法。
经典的类似示例是创建一个线程来执行某个计算密集型的任务,以免阻塞主线程,例如:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 创建一个新线程来执行 Calculate 方法
Thread calculatorThread = new Thread(new ThreadStart(Calculate));
calculatorThread.Start();
// 主线程可以执行其他任务
for (int i = 1; i <= 10; i++)
{
Console.WriteLine($"Main thread: {i}");
Thread.Sleep(100);
}
// 主线程和新线程并行执行
}
static void Calculate()
{
// 在新线程中执行计算密集型任务
for (int i = 1; i <= 10; i++)
{
Console.WriteLine($"Calculator thread: {i}");
Thread.Sleep(100);
}
}
}
//主线程和 calculatorThread 线程并行执行,允许执行不同的任务而不阻塞主线程。这是多线程编程的一个典型用例。
如有不对 ,请指正。感谢感谢
ps:C#的委托我可以理解成一个容器吗? 里边存放了一些方法,当激活这个委托时,就执行里边的方法?