一. FrameWork 4.0之前的线程世界
在.NET FrameWork 4.0之前,如果我们使用线程。一般有以下几种方式:
二. .Net 传统异步编程概述
三. Task 的优点以及功能
四. TASK的用法
五. 使用 Task 封装常见的异步编程模式
private async void Init()
{
//部分代码省略
var orgs = await _serviceClient.GetAllOrganizationTaskAsync();
}
//通过WCF调用,采取分布类,名称一样。
public partial class ServiceClient
{
public Task<ObservableCollection<Organization>> GetAllOrganizationTaskAsync()
{
//Task 封装APM
return Task<ObservableCollection<Organization>>.Factory.FromAsync(this.Channel.BeginGetAllOrganization, this.Channel.EndGetAllOrganization, null);
}
}
var source = new TaskCompletionSource<string>();
var webClient = new WebClient();
webClient.DownloadStringCompleted += (sender, args) => {
if (args.Cancelled) {
source.SetCanceled();
return;
}
if (args.Error != null) {
source.SetException(args.Error);
return;
}
source.SetResult(args.Result);
};
webClient.DownloadStringAsync(new Uri(UrlToTest, UriKind.Absolute), null);
source.Task.Wait();
var result = source.Task.Result;
此博客来自于http://www.cnblogs.com/luqixinhe/archive/2013/07/18/3197645.html,记录时为了更好的学习。
原文地址:http://www.cnblogs.com/jljxxf/p/3863250.html