文档章节

c# 多线程传递参数以及任务

深圳大道
 深圳大道
发布于 2016/12/29 15:33
字数 216
阅读 2
收藏 0
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");
        }
    }
}


本文转载自:http://blog.csdn.net/smartsmile2012/article/details/44591753

共有 人打赏支持
深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
C# 使用多线程如何传递两个以上参数的实现方法(附示例)

某些情况下当我们启动一个线程的时候会向该线程传递参数,有时除了功能上需要之外,我觉得还有就是为了我们能管理好启动的线程组(当然,只开一两个线程什么的也谈不上不好管理了,我说的线程...

余二五
2017/11/15
0
0
C#多线程学习(四) 多线程的自动管理(线程池)

本系列文章导航 C#多线程学习(一) 多线程的相关概念 C#多线程学习(二) 如何操纵一个线程 C#多线程学习(三) 生产者和消费者 C#多线程学习(四) 多线程的自动管理(线程池) C#多线程学习(五) 多线...

Yamazaki
2012/03/29
0
0
C#多线程编程系列(四)- 使用线程池

目录 1.1 简介 1.2 在线程池中调用委托 1.3 向线程池中放入异步操作 1.4 线程池与并行度 1.5 实现一个取消选项 1.6 在线程池中使用等待事件处理器及超时 1.7 使用计时器 1.8 使用BackgroundW...

InCerry
2018/08/06
0
0
Unity2018新功能抢鲜 | C# Job System Ⅰ

本文首发于“洪流学堂”微信公众号。 洪流学堂,让你学Unity快人几步 Unity2018.1中的新功能Job System,可以让你在Unity中编写简单且线程安全的多线程代码以大幅提高游戏性能。先来看看吧!...

zhenghongzhi6
2018/04/17
0
0
C# 中的Async 和 Await 的用法详解

众所周知C#提供Async和Await关键字来实现异步编程。在本文中,我们将共同探讨并介绍什么是Async 和 Await,以及如何在C#中使用Async 和 Await。 同样本文的内容也大多是翻译的,只不过加上了...

依乐祝
03/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊ShenandoahGC的Brooks Pointers

序 本文主要研究一下ShenandoahGC的Brooks Pointers Shenandoah Shenandoah面向low-pause-time的垃圾收集器,它的GC cycle主要有 Snapshot-at-the-beginning concurrent mark包括Init Mark(P......

go4it
昨天
1
0
Makefile通用编写规则

#简单实用的Makefile模板: objs := a.o b.o test:$(objs) gcc -o test $^ # .a.o.d .b.o.d dep_files := $(foreach f,$(objs),.$(f).d) dep_files := $(wildcard $(dep_files)) ifneq ($(d......

shzwork
昨天
1
0
《万历十五年》的读后感作文4000字

《万历十五年》的读后感作文4000字: 万历十五年,即1587年,距今已过去432年。在明朝276的历史中,这一年很平淡,并没有什么特别之处。黄仁宇的《万历十五年》一书,有别于其他的历史叙述方...

原创小博客
昨天
0
0
vue组件系列4、Table封装下

知道了slot 怎么用,才可以理解table这样封装的原因 table插件部分 <template> <div> <!-- 关键字部分 --> <div class="pre_search" v-show="show_key"> <label>关键字:......

轻轻的往前走
昨天
0
0
laravel嵌套预加载限制字段

之前有写过laravel关联查询的坑,后经一位博友提醒可以简写,详见https://my.oschina.net/u/3470006/blog/3020215 自己实践了下果然如此,要查询user表和与之关联的信息表userinfo直接可以用...

gcudwork
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部