C#__自定义类传输数据和前台线程和后台线程

本文介绍了Java中前台线程和后台线程的区别,如何使用Thread类创建并设置后台线程,以及线程池的应用。通过DownloadTool类实例展示如何在主程序中启动下载操作和后台任务。
摘要由CSDN通过智能技术生成

// 前台线程和后台线程
// 默认情况下,用Thread类创建的线程是前台线程。线程池中的线程总是后台线程。
// 用Thread类创建线程的时候,可以设置IsBackground属性,表示一个后台线程。
// 前台线程在主函数运行结束后依旧执行,后台线程在主函数执行完毕后不再执行

// DownloadTool类

    class DownloadTool
    {
        public string URL { get; private set; }
        public string Message { get; private set; }

        public DownloadTool(string uRL, string message)
        {
            URL = uRL;
            Message = message;
        }
        public void Download()
        {
            Console.WriteLine("从" + URL + "中下载");
        }
    }

 // 主程序

    class Program
    {
        static void Main(string[] args)
        {
            DownloadTool download = new DownloadTool("http://www……", "manager");
            Thread t = new Thread(download.Download); 
            t.Start(); // 从http://www……中下载

            // 前台线程和后台线程
            // 默认情况下,用Thread类创建的线程是前台线程。线程池中的线程总是后台线程。
            // 用Thread类创建线程的时候,可以设置IsBackground属性,表示一个后台线程。
            // 前台线程在主函数运行结束后依旧执行,后台线程在主函数执行完毕后不再执行
            var t1 = new Thread(ThreadMain) { IsBackground = true };
            t1.Start();
            Console.WriteLine("Main thread ending now.");

            //Main thread ending now.
            //Thread + stared // 线程同步有一定的时间运行
        }
        static void ThreadMain()
        {
            Console.WriteLine("Thread +" + Thread.CurrentThread.Name + "stared");
            Thread.Sleep(2000);
            Console.WriteLine("Thread +" + Thread.CurrentThread.Name + "end");
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值