发布于2021-06-07 20:03 阅读(1124) 评论(0) 点赞(4) 收藏(4)
给线程传递一些数据可以采用两种方式。一种方式是使用带ParameterizedThreadStart委托参数的Thrad构造函数
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Threading;
-
- // 线程传递参数
- namespace C艹Demo
- {
- class Program
- {
- struct Data { public string aData; };
- static void Main(string[] args)
- {
- // 线程
- var d = new Data { aData = ("info") };
- // lambda 表达式 =>左边是参数,右边是表达式或者语句块
- // Thread thread = new Thread(() => ThreadMainWithParameters());
- var thread = new Thread(ParameterizedThreadStart);
- thread.Start(d);
- // Console.WriteLine(bt.ToString());
- Console.ReadKey();
- }
-
- // ThreadStart不能有参数
- static void ParameterizedThreadStart(object o)
- {
- Data gate = (Data)o;
- Console.WriteLine("Run thread object {0}", gate.aData);
- }
- }
- }
另一种是创建自定义类,把线程方法当做实例,初始化实例数据。
- // 线程实例化
- namespace C艹Demo
- {
- public class myThread
- {
- private string strData;
- public myThread(string str)
- {
- this.strData = str;
- }
-
- public void OutData()
- {
- Console.WriteLine("Out Data {0}", strData);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- myThread myThrad = new myThread("a2s1djask");
- var thread = new Thread(myThrad.OutData);
- thread.Start();
-
- Console.ReadKey();
- }
- }
- }
1、当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALSE的。
2、当主线程退出的时候,IsBackground=FALSE的线程还会继续执行下去,直到线程执行结束。
3、只有IsBackground=TRUE的线程才会随着主线程的退出而退出。
4、当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的退出而退出。
5、原理:只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序。
- namespace C艹Demo
- {
- class Program
- {
- struct Data { public string aData; };
- static void Main(string[] args)
- {
- // 线程在默认情况下,用Thread类创建的线程是前台线程.
- // 线程池中的线程总是后台线程.IsBackground属性可以设置是前台还是后台
- var thread = new Thread(ThreadParameters)
- { Name = "MyThread",IsBackground = false};
- thread.Start();
-
- // Console.ReadKey();
- }
-
- static void ThreadParameters()
- {
- Console.WriteLine("Run thread object {0}", Thread.CurrentThread.Name);
- Thread.Sleep(3000);
- Console.WriteLine("run {0} completed", Thread.CurrentThread.Name);
- }
- }
- }
原文链接:https://blog.csdn.net/qq_31565379/article/details/117323578
作者:美丽的老婆你听我说
链接:http://www.phpheidong.com/blog/article/89468/e5f00a738ac3ddb8db22/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!