异步编程中使用帮助类来实现Thread.Start()的示例

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading;
 6 
 7 namespace ConsoleApplication9
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13 
14 
15             // 异步调用 
16             // 将需传递给异步执行方法数据及委托传递给帮助器类 
17             ThreadWithState tws = new ThreadWithState(
18                "This report displays the number {0}.",
19                42,
20                new ExampleCallback(ResultCallback)
21             );
22             Thread t = new Thread(new ThreadStart(tws.ThreadProc));
23             t.Start();
24             Console.ReadKey();
25         }
26 
27         static void ResultCallback(int i)
28         {
29             Console.Write("No." + i + "\n");
30         }
31     }
32 }
33 
34 // 包装异步方法的委托 
35 public delegate void ExampleCallback(int lineCount); 
36 // 帮助器类 
37   
38 public class ThreadWithState 
39 { 
40     private string boilerplate; 
41     private int value; 
42     private ExampleCallback callback; 
43    
44     public ThreadWithState(string text, int number, 
45         ExampleCallback callbackDelegate) 
46   
47     { 
48         boilerplate = text; 
49         value = number; 
50         callback = callbackDelegate; 
51     } 
52   
53     public void ThreadProc() 
54     { 
55         Console.WriteLine(boilerplate, value); 
56         // 异步执行完时调用回调 
57         if (callback != null) 
58             callback(1); 
59     } 
60 } 

运行结果:

摘自:http://www.cnblogs.com/heyuquan/archive/2012/12/16/2820775.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨龙飞前端

scrollto 到指定位置

2944
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

38610
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.4K7
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2860
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

8668
来自专栏菩提树下的杨过

Flash/Flex学习笔记(23):运动学原理

先写一个公用的小球类Ball: package{ import flash.display.Sprite; //小球 类 public class B...

27310
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3675
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

5228
来自专栏魂祭心

原 canvas绘制clock

5104
来自专栏落花落雨不落叶

canvas画简单电路图

84611

扫码关注云+社区