【发布时间】:2014-03-23 19:08:46
【问题描述】:
我需要异步实现一个长时间运行的进程。 我已经使用 Task.Run() 完成了所有工作,没有任何问题。 然而,需求发生了变化,现在他们想要任何正在进行的异步任务的“取消”功能。 如果我以更简单的形式解释要求; 我有一个按钮、文本框和一个列表框。 当用户在文本框中输入内容并单击按钮时,它应该从 db 获取数据并使用 db 结果填充列表框(假设这是一个长时间运行的过程) 如果用户改变主意并在文本框中再次输入内容并单击按钮,它应该停止当前正在运行的任务,清除列表框并应该使用在他的输入中输入的新值启动任务(获取和显示数据)第二次尝试。
我尝试为此使用取消令牌,但没有成功。 如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
取消令牌有什么问题?
-
请发布您的代码。如果你让每个人都猜测你做错了什么,你将不会得到任何有用的答案。
-
又一个“我试过这个但没用”的问题...伙计,这种趋势让我想放弃写答案。 发布特定的错误消息和与问题直接相关的代码有多难?我们无法读懂您的想法,也无法看到您的屏幕。请更彻底。
标签: c# .net task-parallel-library cancellationtokensource