本文实例讲述了C#多线程传递参数及任务用法。分享给大家供大家参考,具体如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ConsoleSample { class Program { static void Main(string[] args) { Console.WriteLine("这是主线程"); DateTime dtStart = DateTime.Now; for (int i = 0; i < 100; i++) { Student s = new Student(); s.name = "张三" + i; s.sex = "男"; s.age = 28; Thread t = new Thread(ThreadWithParas); t.Start(s); //要给线程传递数据,需某个存储数据的类或结构 } DateTime dtEnd = DateTime.Now; TimeSpan span = (TimeSpan)(dtEnd - dtStart); Console.ReadLine(); Console.WriteLine("运行的时间 " + span.Milliseconds); Console.ReadLine(); } static void ThreadWithParas(object o) { Student s = o as Student; Console.WriteLine("这是分线程" + Thread.CurrentThread.ManagedThreadId + " " + s.name + "---" + s.sex + "---" + s.age); } } public class Student { public string name; public string sex; public int age; } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleSample { class Program { static void Main(string[] args) { //任务层次结构 Task parent = new Task(ParentTask); parent.Start(); Thread.Sleep(2000); Console.WriteLine(parent.Status); Thread.Sleep(4000); Console.WriteLine(parent.Status); Console.ReadLine(); } //父任务 static void ParentTask() { Console.WriteLine("task id {0}", Task.CurrentId); Task child = new Task(ChildTask); // , TaskCreationOptions.DetachedFromParent); child.Start(); Thread.Sleep(1000); Console.WriteLine("parent started child"); // Thread.Sleep(3000); } //子任务 static void ChildTask() { Console.WriteLine("child"); Thread.Sleep(5000); Console.WriteLine("child finished"); } } }
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。
本文向大家介绍C#程序将参数传递给线程,包括了C#程序将参数传递给线程的使用技巧和注意事项,需要的朋友参考一下 要使用线程,请在代码中添加以下命名空间- 首先,您需要在C#中创建一个新线程- 上面,threadDemo是我们的线程函数。 现在将参数传递给线程- 上面设置的参数是- 示例 让我们看完整的代码,以将参数传递给C#中的线程。 输出结果
本文向大家介绍C#传递参数到线程的方法汇总,包括了C#传递参数到线程的方法汇总的使用技巧和注意事项,需要的朋友参考一下 本文汇总整理了传递参数到线程的方法供大家参考,非常实用,具体内容如下: 首先我们要知道什么是线程,什么时候要用到线程,如何去使用线程,如何更好的利用线程来完成工作。 线程是程序可执行片段的最小单元,是组成运行时程序的基本单元,一个进程有至少一个线程组成。一般在并行处理等待事件的时
本文向大家介绍C#往线程里传递参数的方法小结,包括了C#往线程里传递参数的方法小结的使用技巧和注意事项,需要的朋友参考一下 传参方式有两种: 1、创建带参构造方法类 传参 2、利用Thread.start(8)直接传参,该方法会接收一个对象,并将该对象传递给线程,因此在线程中启动的方法 必须接收object类型的单个参数。 Thread (ParameterizedThreadStart) 初始化
本文向大家介绍C#(asp.net)多线程用法示例(可用于同时处理多个任务),包括了C#(asp.net)多线程用法示例(可用于同时处理多个任务)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#(asp.net)多线程用法。分享给大家供大家参考,具体如下: 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#常见控件用法教程》、《WinForm控件
各位大佬请教一个问题,当我实现任务队列时rpushTasksQueue始终要比我上限少一个,比如我设定的上限是3,然后他2执行完就结束了,求救
本文向大家介绍C#向线程中传递多个参数的解决方法(两种),包括了C#向线程中传递多个参数的解决方法(两种)的使用技巧和注意事项,需要的朋友参考一下 问题: 对于多线程编程,很多时候往往需要向线程中传递多个参数,而C#中的线程只接收1个object类型的参数(如下): 而现在需要往线程中传递多个参数,比如method方法想用单独的线程来跑 解决办法1:新建一个跑方法的类 然后新建一个该类实例,赋值之