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

// 前台线程和后台线程

// 默认情况下,用Thread类创建的线程是前台线程。线程池中的线程总是后台线程。

// 用Thread类创建线程的时候,可以设置IsBackground属性,表示一个后台线程。

// 前台线程在主函数运行结束后依旧执行,后台线程在主函数执行完毕后不再执行

// DownloadTool类

cs 复制代码
    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 + "中下载");
        }
    }

// 主程序

cs 复制代码
    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");
        }
    }
相关推荐
斯特凡今天也很帅几秒前
python测试SFTP连通性
开发语言·python·ftp
sunywz3 分钟前
【JVM】(4)JVM对象创建与内存分配机制深度剖析
开发语言·jvm·python
亲爱的非洲野猪3 分钟前
从ReentrantLock到AQS:深入解析Java并发锁的实现哲学
java·开发语言
星火开发设计4 分钟前
C++ set 全面解析与实战指南
开发语言·c++·学习·青少年编程·编程·set·知识
沛沛老爹19 分钟前
Web开发者进阶AI:Agent Skills-深度迭代处理架构——从递归函数到智能决策引擎
java·开发语言·人工智能·科技·架构·企业开发·发展趋势
Good_Starry28 分钟前
Java——正则表达式
java·开发语言·正则表达式
二哈喇子!32 分钟前
前端HTML、CSS、JS、VUE 汇总
开发语言·前端
欧洵.35 分钟前
Java.基于UDP协议的核心内容
java·开发语言·udp
情缘晓梦.41 分钟前
C语言数据存储
c语言·开发语言
xunyan623442 分钟前
第九章 JAVA常用类
java·开发语言