如何终止一个异步方法

Cherishe7 2013-10-12 11:07:36
这个异步方法起到了一个线程的作用,在界面加载时调用,实现处理多条数据,并通知UI更新进度条,现在想在某处杀掉它,如何处理?,我的这种处理方式能不能行的通?

        public async static void ProcessData()
{
int persent = 0;
int i = 0;
if (App.LastRecord > 0 )
{
i = App.LastRecord;
}

for (; i < App.AllCount; i++)
{
App.LastRecord++;
await SaveData.WriteData(App.DateList[i]);
persent = (int)((float)(i + 1) * 100 / (float)TotalCount);
_mainPage.Dispatcher.BeginInvoke(delegate()
{
_mainPage.mainProgressbar.Value = persent;
});
}

await Task.Run(() =>
{
if (persent >= 100)
return;
});
_mainPage.Dispatcher.BeginInvoke(delegate()
{
_mainPage.NavigationService.Navigate(new Uri("/ResultPage.xaml", UriKind.Relative));
});
}
...全文
632 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
北极猩猩 2013-10-19
  • 打赏
  • 举报
回复
Task是可以cancel的,参考: http://msdn.microsoft.com/en-us/library/dd997396.aspx
beyondma 2013-10-12
  • 打赏
  • 举报
回复
无法终止,只能设置一个标志,让异步处理函数检测后就退出。

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧