C#前台线程和后台线程举例
时间: 2023-12-05 13:40:57 浏览: 90
以下是C#中前台线程和后台线程的举例:
1. 前台线程举例:
```csharp
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Thread t = new Thread(new ThreadStart(CountNumbers));
t.Start();
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("Main thread: " + i);
Thread.Sleep(1000);
}
}
static void CountNumbers()
{
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("Child thread: " + i);
Thread.Sleep(1000);
}
}
}
```
在这个例子中,我们创建了一个新的线程t,并在该线程上执行CountNumbers方法。在主线程中,我们打印了5个数字,并在每个数字之间暂停了1秒钟。在CountNumbers方法中,我们也打印了5个数字,并在每个数字之间暂停了1秒钟。由于我们在前台线程上执行CountNumbers方法,因此在主线程和子线程之间会交替打印数字。
2. 后台线程举例:
```csharp
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Thread t = new Thread(new ThreadStart(CountNumbers));
t.IsBackground = true;
t.Start();
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("Main thread: " + i);
Thread.Sleep(1000);
}
}
static void CountNumbers()
{
for (int i = 1; i <= 10; i++)
{
Console.WriteLine("Child thread: " + i);
Thread.Sleep(1000);
}
}
}
```
在这个例子中,我们创建了一个新的线程t,并在该线程上执行CountNumbers方法。我们将线程t设置为后台线程,这意味着当主线程退出时,线程t也会被强制终止。在主线程中,我们打印了5个数字,并在每个数字之间暂停了1秒钟。在CountNumbers方法中,我们打印了10个数字,并在每个数字之间暂停了1秒钟。由于我们在后台线程上执行CountNumbers方法,因此当主线程退出时,线程t也会被强制终止,因此只有前5个数字被打印出来。
阅读全文