使用async await完成: 等到task线程内任务结束 交给主线程处理事情 task线程内不会出现卡死现象

private async void DoSomething()
{
    await Task.Run(() =>
    {
        Thread.Sleep(5000);
    });
   Finish();
}

注意:要在.net Framewok4.5下才能使用。VS2010只支持到.Net4.0。 要升级成VS2013可正常使用