C#教程
C#控制语句
C#函数
C#数组
C#面向对象
C#命名空间和异常
C#文件IO
C#集合
C#多线程
C#其它

C# 线程static方法

C# 线程示例: static方法

我们可以在线程的执行上调用静态和非静态方法。要调用静态和非静态方法,需要在 ThreadStart 类的构造函数中传递方法名称。对于静态方法,我们不需要创建类的实例。可以通过类名引用。
using System;
using System.Threading;
public class MyThread
{
    public static void Thread1()
    {
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(i);
        }
    }
}
public class ThreadExample
{
    public static void Main()
    {
        Thread t1 = new Thread(new ThreadStart(MyThread.Thread1));
        Thread t2 = new Thread(new ThreadStart(MyThread.Thread1));
        t1.Start();
        t2.Start();
    }
}
输出:
上述程序的输出可以是任意的,因为线程之间存在上下文切换。
0
1
2
3
4
5
0
1
2
3
4
5
6
7
8
9
6
7
8
9

C#线程示例: 非静态方法

对于非静态方法,您需要创建类的实例,以便在ThreadStart类的构造函数中引用它.
using System;
using System.Threading;
public class MyThread
{
    public void Thread1()
    {
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(i);
        }
    }
}
public class ThreadExample
{
    public static void Main()
    {
        MyThread mt = new MyThread();
        Thread t1 = new Thread(new ThreadStart(mt.Thread1));
        Thread t2 = new Thread(new ThreadStart(mt.Thread1));
        t1.Start();
        t2.Start();
    }
}
输出:
和上面的程序输出一样,这个程序的输出可以是任何东西,因为线程之间有上下文切换。
0
1
2
3
4
5
0
1
2
3
4
5
6
7
8
9
6
7
8
9

C# 线程示例: 在每个线程上执行不同的任务

让我们看一个示例,我们在每个线程上执行不同的方法。
using System;
using System.Threading;
public class MyThread
{
    public static void Thread1()
    {
        Console.WriteLine("task one");
    }
    public static void Thread2()
    {
        Console.WriteLine("task two");
    }
}
public class ThreadExample
{
    public static void Main()
    {
        Thread t1 = new Thread(new ThreadStart(MyThread.Thread1));
        Thread t2 = new Thread(new ThreadStart(MyThread.Thread2));
        t1.Start();
        t2.Start();
    }
}
输出:
task one
task two
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4