C#从零开始学线程_003_给Thread线程传参
2022/2/18 1:12:42
本文主要是介绍C#从零开始学线程_003_给Thread线程传参,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
给Thread线程传递参数,一般有两种方法
- 通过Thread的Start()方法给线程传递参数,这种方法只能传递一个Object类型的参数;
- 通过lambda表达式给Thread线程传递参数,这种方式可以给线程中的函数传递多个参数。
通过Thread的Start()方法给线程传递参数:
1 internal void Do() 2 { 3 Thread t = new Thread(Method); //创建一个Thread对象t, 4 t.Start("Hello"); //通过Start方法将参数传递给给线程,该方法只能接受一个Object类型的对象 5 } 6 7 /// <summary> 8 /// 线程中执行的方法,该方法只能接受一个Object类型的对象 9 /// </summary> 10 /// <param name="obj"></param> 11 private void Method(object? obj) 12 { 13 Console.WriteLine(obj.ToString()); 14 }
可以简写成一下的形式:
1 internal void Do() 2 { 3 new Thread(Method).Start("Hello"); //创建一个Thread对象t,并通过Star方法启动线程,且向线程传递参数 4 } 5 6 /// <summary> 7 /// 线程中执行的方法,该方法只能接受一个Object类型的对象 8 /// </summary> 9 /// <param name="obj"></param> 10 private void Method(object? obj) 11 { 12 Console.WriteLine(obj.ToString()); 13 }
通过lambda表达式给Thread线程传递多个参数
1 internal void Do() 2 { 3 Thread t = new Thread(() => Method(2, 3)); //通过lambda表达式来给线程中的函数传递两个参数 4 t.Start(); 5 } 6 7 private void Method(int i, int j) 8 { 9 Console.WriteLine((i + j).ToString()); 10 }
也可以简写为下面的形式
internal void Do() { new Thread(() => Method(2, 3)).Start(); //通过lambda表达式来给线程中的函数传递两个参数 } private void Method(int i, int j) { Console.WriteLine((i + j).ToString()); }
这篇关于C#从零开始学线程_003_给Thread线程传参的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#