在C#中实现多线程和并发编程可以使用Thread类来创建和管理线程,也可以使用Task类来执行异步操作。为避免并发问题,可以使用锁、互斥体、信号量等机制来控制线程的访问和资源的竞争。以下是一个简单的示例代码:
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Thread thread1 = new Thread(new ThreadStart(Method1));
Thread thread2 = new Thread(new ThreadStart(Method2));
Console.WriteLine("Starting threads...");
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
Console.WriteLine("Threads finished.");
}
static void Method1()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Thread 1 is running...");
Thread.Sleep(1000);
}
}
static void Method2()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Thread 2 is running...");
Thread.Sleep(1000);
}
}
}
可以使用Join方法等待线程执行完成以便对结果进行处理或打印。
另外,可以参考以下学习资源:
- 《C#多线程编程实战》
- 官方文档:https://docs.microsoft.com/en-us/dotnet/standard/threading/
- 《C#并发编程实战》