如何编写 C# 线程函数
在 C# 中,可以使用
Thread类和
ThreadStart委托来创建和启动线程。
创建线程
要创建线程,需要执行以下步骤:
-
创建一个
ThreadStart委托,它指定线程执行的函数。 使用
ThreadStart委托实例化一个
Thread对象。 为
Thread对象设置相关属性,例如优先级、堆栈大小等。
启动线程
创建线程后,可以通过调用
Start()方法启动它。该方法会创建并启动一个新的线程,该线程将执行委托中指定的函数。
编写线程函数
线程函数是一个在单独线程中执行的函数。它继承自
ThreadStart委托,并需要按照以下规则编写: 签名:线程函数应具有以下签名:
void FunctionName()。 访问共享数据:如果线程函数需要访问共享数据,必须使用适当的同步机制(如锁或互斥量)来防止数据竞争。 生命周期:线程函数应根据需要执行其任务,并在完成时退出。
示例
下面的示例演示了如何编写一个 C# 线程函数:
<code class="c#">using System;
using System.Threading;
namespace ThreadExample {
class Program {
static void Main(string[] args) {
// 创建一个线程函数
ThreadStart threadStart = new ThreadStart(PrintNumbers);
// 创建并启动一个线程
Thread thread = new Thread(threadStart);
thread.Start();
// 在主线程中执行一些操作
Console.WriteLine("Main thread is running...");
}
static void PrintNumbers() {
// 在单独的线程中执行
for (int i = 1; i <= 10; i++) {
Console.WriteLine($"Thread: {Thread.CurrentThread.ManagedThreadId} - {i}");
}
}
}
}</code>在这个示例中,
PrintNumbers函数是在单独线程中执行的线程函数。它打印数字 1 到 10。
