C# 异步多线程实现(二)Thread类

核心

Thread th = new Thread(要执行的方法);

th.IsBackground = true;

th.Start(可以传入一个参数);
  • 通过Thread调用的方法,只能接受一个参数,而且必须是object类型的参数。
  • 为了传递更多的参数,可以通过类内封装的方式,调用类内的方法。
  • Thread方法还有一个方法是Join:只有等线程结束,主线程才可继续。

参考代码:

class Program
{
    static void Main(string[] args)
    {
        // 只能接受一个参数,并且必须是object类型的参数。
        Thread th = new Thread(Method1);
        th.IsBackground = true;
        th.Start(100);
        Console.WriteLine(Thread.CurrentThread.ManagedThreadId);

        // 第二种方法:单独创建一个关于Thread的类。类内封装一个要执行的方法,然后将参数通过类内字段传递。
        MyThread mt = new MyThread("xx.bt", "www.baidu.com");
        Thread th2 = new Thread(mt.Download);
        th2.Start();

        Thread th3 = new Thread(Method1);
        th3.Join();// 主线程中插入th3线程,只有当th3结束后,才继续往下执行。
    }

    static void Method1(object a)
    {
        Console.WriteLine(a + "开始下载..."+Thread.CurrentThread.ManagedThreadId);
        Thread.Sleep(1000);
        Console.WriteLine("下载结束。");
    }
}

public class MyThread 
{
    public string _name;
    public string _path;
    public MyThread(string fileName, string filePath)
    {
        this._name = fileName;
        this._path = filePath;
    }

    public void Download()
    {
        Console.WriteLine("开始下载" + _name);
        Thread.Sleep(1000);
        Console.WriteLine("下载结束。"+ _path);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值