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.Threading;
      9 using System.Threading.Tasks;
     10 using System.Windows.Forms;
     11 
     12 namespace WindowsFormsApplication1
     13 {
     14     public partial class Form1 : Form
     15     {
     16         public Form1()
     17         {
     18             InitializeComponent();
     19         }
     20         private delegate void SetM();
     21         private delegate void SetZ(int i);
     22         private void button1_Click(object sender, EventArgs e)
     23         {
     24             //Console.WriteLine("主1" + Thread.CurrentThread.ManagedThreadId);
     25             //SetM s = new SetM(test);
     26             //s.BeginInvoke(null, null);
     27             //Console.WriteLine("主2" + Thread.CurrentThread.ManagedThreadId);
     28 
     29             //Console.WriteLine("主0" + Thread.CurrentThread.ManagedThreadId);
     30             //Action action = new Action(() => { test(); });
     31             //action.BeginInvoke(null, null);
     32             //Console.WriteLine("主1" + Thread.CurrentThread.ManagedThreadId);
     33 
     34             //Console.WriteLine("主0" + Thread.CurrentThread.ManagedThreadId);
     35             //Func<int, int, int> func = new Func<int, int, int>(test1);
     36             ////   func.BeginInvoke(1, 1, null, null);
     37             //func(1, 1);
     38             //Console.WriteLine("主1" + Thread.CurrentThread.ManagedThreadId);
     39             ////Console.WriteLine(func(1, 1));
     40 
     41 
     42 
     43             //等待
     44             //Console.WriteLine("主1" + Thread.CurrentThread.ManagedThreadId);
     45             //SetM s1 = new SetM(test);
     46             //var result = s1.BeginInvoke(null, null);
     47             //while (!result.IsCompleted)
     48             //{
     49             //    Thread.Sleep(1000);
     50             // }
     51             //Console.WriteLine("主2" + Thread.CurrentThread.ManagedThreadId);
     52 
     53 
     54             //Console.WriteLine("主0" + Thread.CurrentThread.ManagedThreadId);
     55             //SetM s1 = new SetM(test);
     56             //IAsyncResult ar =s1.BeginInvoke(null, null);
     57             //Console.WriteLine("主1" + Thread.CurrentThread.ManagedThreadId);
     58             //s1.EndInvoke(ar);
     59             //Console.WriteLine("主2" + Thread.CurrentThread.ManagedThreadId);
     60 
     61 
     62             //Console.WriteLine("主0" + Thread.CurrentThread.ManagedThreadId);
     63             //Action action = new Action(() => { test(); });
     64             //IAsyncResult ar2 = action.BeginInvoke(null, null);
     65             //if (ar2.AsyncWaitHandle.WaitOne())
     66             //{
     67             //    Console.WriteLine("主1" + Thread.CurrentThread.ManagedThreadId);
     68             //}
     69             //Console.WriteLine("主2" + Thread.CurrentThread.ManagedThreadId);
     70 
     71 
     72             //回调
     73 
     74 
     75             Console.WriteLine("主0" + Thread.CurrentThread.ManagedThreadId);
     76             Action a = new Action(() => { test(); });
     77             AsyncCallback callback = o=> { Console.WriteLine("回调" + o.AsyncState); };
     78             a.BeginInvoke(callback, 2);
     79             Console.WriteLine("主1" + Thread.CurrentThread.ManagedThreadId);
     80         }
     81 
     82 
     83         private void test()
     84         {
     85             for (int i = 0; i < 5; i++)
     86             {
     87                 Thread.Sleep(1000);
     88             }
     89 
     90             Console.WriteLine("test" + Thread.CurrentThread.ManagedThreadId);
     91         }
     92 
     93         private int test1(int a, int b)
     94         {
     95             for (int i = 0; i < 5; i++)
     96             {
     97                 Thread.Sleep(1000);
     98             }
     99 
    100             Console.WriteLine("test1" + Thread.CurrentThread.ManagedThreadId);
    101             return 666;
    102         }
    103     }
    104 }
  • 相关阅读:
    关于IIS7发布网站
    二叉树遍历逆向
    山药熬粥补脾
    山萸肉补肝阴
    生黄芪痔疮
    酸石榴
    生石膏粉清实热
    熟地黄被肾阴
    龙眼肉(桂圆肉)
    鸡内金消食导滞
  • 原文地址:https://www.cnblogs.com/anyihen/p/12828486.html
Copyright © 2011-2022 走看看