异步编程中使用帮助类来实现Thread.Start()的示例
2013-11-19 20:40
253 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ConsoleApplication9 { class Program { static void Main(string[] args) { // 异步调用 // 将需传递给异步执行方法数据及委托传递给帮助器类 ThreadWithState tws = new ThreadWithState( "This report displays the number {0}.", 42, new ExampleCallback(ResultCallback) ); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); Console.ReadKey(); } static void ResultCallback(int i) { Console.Write("No." + i + "\n"); } } } // 包装异步方法的委托 public delegate void ExampleCallback(int lineCount); // 帮助器类 public class ThreadWithState { private string boilerplate; private int value; private ExampleCallback callback; public ThreadWithState(string text, int number, ExampleCallback callbackDelegate) { boilerplate = text; value = number; callback = callbackDelegate; } public void ThreadProc() { Console.WriteLine(boilerplate, value); // 异步执行完时调用回调 if (callback != null) callback(1); } }
运行结果:
摘自:http://www.cnblogs.com/heyuquan/archive/2012/12/16/2820775.html
相关文章推荐
- oracle 使用 START WITH…CONNECT BY PRIOR 实现递归查询
- JavaScript使用prototype原型实现的封装继承多态示例
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- JS使用正则表达式实现关键字替换加粗功能示例
- 以ThreadStart方式实现多线程
- 使用原生js实现页面蒙灰(mask)效果示例代码
- 使用Quartz2.1.6+Spring3.0实现任务调度简单示例
- Android锁屏或灭屏状态下,快速按两次音量下键实现抓拍功能(1.2Framework层使用startService形式实现)
- 使用clipboard.js实现复制功能的示例代码
- 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
- Python使用time模块实现指定时间触发器示例
- c#使用file.copy实现文件备份示例
- 使用Thread+Handler实现非UI线程更新UI界面
- C# 使用多线程如何传递两个以上参数的实现方法(附示例) 推荐
- php使用高斯算法实现图片的模糊处理功能示例
- java使用zookeeper实现的分布式锁示例
- 事务的使用示例及WinForm实现中的若干问题
- Android中使用Thread+Handler实现非UI线程更新UI界面
- 使用$.getJSON实现跨域ajax请求示例代码