C# 开启线程几种方式
【摘要】 通过Thread发起线程,,,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace 通过Thread发起线程
{ cla...
通过Thread发起线程,,,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace 通过Thread发起线程
{ class Program { static void Main(string[] args) { //直接使用Thread类,以及其方法 Thread threadA = new Thread(DownLoadFile); threadA.Start(); Console.WriteLine("Main"); //使用Lamdba表达式 Thread threadB = new Thread( () => { Console.WriteLine("使用Lamdba表达式, 开始下载" + Thread.CurrentThread.ManagedThreadId); Thread.Sleep(2000); Console.WriteLine("使用Lamdba表达式,下载完成"); } ); threadB.Start(); //传递带参数的方法,,参数是object类型的,, Thread threadC = new Thread(UpDataFile); threadC.Start("Czhenya.jpeg"); Console.WriteLine("Main"); Console.ReadKey(); } static void DownLoadFile() { Console.WriteLine("开始下载,此协程的Id是"+Thread.CurrentThread.ManagedThreadId); Thread.Sleep(2000); Console.WriteLine("下载完成"); } static void UpDataFile(object filename) { Console.WriteLine("开始上传" + filename); Thread.Sleep(2000); Console.WriteLine("上传完成"); } }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
使用线程池创建线程
using System;
using System.Threading;
namespace 线程池创建线程
{ class Program { static void Main(string[] args) { ThreadPool.QueueUserWorkItem(SmallThread); ThreadPool.QueueUserWorkItem(SmallThread); ThreadPool.QueueUserWorkItem(SmallThread); ThreadPool.QueueUserWorkItem(SmallThread); ThreadPool.QueueUserWorkItem(SmallThread); ThreadPool.QueueUserWorkItem(SmallThread); ThreadPool.QueueUserWorkItem(SmallThread); Console.Read(); } static void SmallThread(object filename) { Console.WriteLine("线程开始,ID:"+Thread.CurrentThread.ManagedThreadId); Thread.Sleep(1000); Console.WriteLine("线程结束"); } }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
使用任务开启线程
using System;
using System.Threading;
using System.Threading.Tasks;
namespace 任务开始线程
{ class Program { static void Main(string[] args) { //第一种 任务开始方式 Task task = new Task(ThreadDemo); task.Start(); //第二种 工厂模式,, TaskFactory tf = new TaskFactory(); Task t = tf.StartNew(ThreadDemo); Console.ReadKey(); } static void ThreadDemo() { Console.WriteLine("任务开始,ID:" + Thread.CurrentThread.ManagedThreadId); Thread.Sleep(1000); Console.WriteLine("任务结束"); } }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/78230839
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)