在.net 4.5里面有一种新的异步编程方法,使用关键字 async 和 await , 下面是一个简单的用例,
如果,有错,请见谅
using System;
using System.Threading;
using System.Threading.Tasks;
namespace asyncTest2
{
class Program
{
public static void Main(string[] args)
{
/*
if(DownloadMoive("www.baidu.com")==true)
{
Console.WriteLine("download finished");
}*/
var downloadSuccess= async_download("www.baidu.com").Result;
if(downloadSuccess==true)
{
Console.WriteLine("download finished");
}
Console.ReadKey(true);
}
/// <summary>
/// 下载电影 (同步)
/// </summary>
/// <param name="downloadStr">下载的字符串</param>
/// <returns>是否下载成功</returns>
private static bool DownloadMoive(string downloadStr)
{
bool isSuccess=false;
try
{
//模拟一个稍微长时间一点点的操作
for(int i=0 ; i<1000000000;i++)
{
i++;
}
isSuccess =true;
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
isSuccess=false;
}
return isSuccess ;
}
/// <summary>
/// 下载电影(异步)
/// </summary>
/// <param name="downloadStr">下载路径</param>
/// <returns>是否成功下载</returns>
private static async Task<bool> async_download (string downloadStr)
{
bool isSuccess=false;
try{
await Task.Run( ()=>{
//模拟一个稍微长时间一点点的操作
for(int i=0 ; i<1000000000;i++)
{
i++;
}
isSuccess=true;
} );
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
isSuccess=false;
}
return isSuccess;
}
}
}