zoukankan      html  css  js  c++  java
  • 线程练习

      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Windows.Forms;
      9 using System.Threading;
     10 using System.Threading.Tasks;
     11 
     12 namespace WindowsFormsApplication1
     13 {
     14     public partial class Form1 : Form
     15     {
     16         public Form1()
     17         {
     18             InitializeComponent();
     19         }
     20 
     21         private void button1_Click(object sender, EventArgs e)
     22         {
     23             Thread t = new Thread(test1);
     24             t.Start();
     25 
     26             Thread t1 = new Thread(new ThreadStart(test1));
     27             t1.Start();
     28 
     29 
     30             Thread t2 = new Thread(() => { test1(); });
     31             t2.Start();
     32 
     33             Thread t3 = new Thread(delegate() { test1(); });
     34             t3.Start();
     35 
     36             Thread t4 = new Thread(() => { Console.WriteLine("test1" + Thread.CurrentThread.ManagedThreadId); });
     37             t4.Start();
     38 
     39 
     40             Task task = new Task(test1);
     41             task.Start();
     42 
     43 
     44             Thread t5 = new Thread(test2);
     45             t5.Start(2);
     46 
     47             Thread t6 = new Thread(() => { test2(2); });
     48             t5.Start();
     49 
     50             Thread t7 = new Thread((o => { test2(o); }));
     51             t7.Start(3);
     52 
     53             Thread t8 = new Thread(new ParameterizedThreadStart(test2));//参数类型必须object 且只有一个参数
     54             t8.Start(2);
     55 
     56             Test4 test = new Test4();
     57             test.a = 4;
     58             Thread t9 = new Thread(test.test4);
     59             t9.Start();
     60 
     61             ThreadPool.QueueUserWorkItem(o => { test1(); });
     62             Parallel.Invoke
     63                 (
     64                 () => { test1(); }
     65                 );
     66 
     67             var action = new Action[]
     68             {
     69                 ()=>test1(),
     70             };
     71             Parallel.Invoke(action);
     72 
     73             Task.Factory.StartNew(() => { });
     74 
     75 
     76 
     77             TaskFactory taskFactory = new TaskFactory();
     78             List<Task> taskList = new List<Task>();
     79 
     80             Task any = taskFactory.ContinueWhenAny(taskList.ToArray(), t =>
     81             {
     82 
     83                 //t.AsyncState
     84 
     85                 Console.WriteLine("这里是ContinueWhenAny {0}", Thread.CurrentThread.ManagedThreadId);
     86 
     87             });
     88 
     89 
     90 
     91             Task all = taskFactory.ContinueWhenAll(taskList.ToArray(), tList =>
     92             {
     93 
     94                 Console.WriteLine("这里是ContinueWhenAll {0}", Thread.CurrentThread.ManagedThreadId);
     95 
     96             });
     97 
     98 
     99 
    100 
    101 
    102             Task.WaitAny(taskList.ToArray());//执行的线程等待某一个task的完成
    103 
    104             Console.WriteLine("after WaitAny{0}", Thread.CurrentThread.ManagedThreadId);
    105 
    106             Task.WaitAll(taskList.ToArray());//执行的线程等待全部的task的完成
    107 
    108             Console.WriteLine("after WaitAll{0}", Thread.CurrentThread.ManagedThreadId);
    109         }
    110 
    111 
    112 
    113         private void test1()
    114         {
    115             Console.WriteLine("test1" + Thread.CurrentThread.ManagedThreadId);
    116         }
    117 
    118         private void test2(object a)
    119         {
    120             Console.WriteLine("test2" + Thread.CurrentThread.ManagedThreadId);
    121 
    122         }
    123 
    124         private int test3(int a)
    125         {
    126             Console.WriteLine("test3" + Thread.CurrentThread.ManagedThreadId);
    127             return 3;
    128         }
    129     }
    130 
    131     public class Test4
    132     {
    133         public int a { get; set; }
    134 
    135         public void test4()
    136         {
    137             Console.WriteLine("test" + a + Thread.CurrentThread.ManagedThreadId);
    138         }
    139     }
    140 }
  • 相关阅读:
    【转载】数据杂谈
    【转载】行走在网格之间:微博用户关系模型
    【转载】TalkingData首席金融行业专家鲍忠铁:18亿数据解读移动互联网
    【转载】大数据架构和模式
    【转载】Deep Learning(深度学习)学习笔记整理
    【转载】如何组建一支优秀的数据分析团队?
    【转载】Hadoop可视化分析利器之Hue
    【转载】关于烂代码的那些事
    【转载】6个用好大数据的秘诀
    【转载】如何一步步从数据产品菜鸟走到骨干数据产品
  • 原文地址:https://www.cnblogs.com/anyihen/p/12826350.html
Copyright © 2011-2022 走看看