我有一个包含三种方法的网络服务:StartReport(...)
,IsReportFinished(...)
和GetReport(...)
,每种方法都有各种参数。我还有一个客户端应用程序(Silverlight),它将首先调用StartReport来触发报告的生成,然后它将使用IsReportFinished轮询服务器以查看它是否已完成,一旦完成,它将调用GetReport来获取报告。很简单......
StartReport很简单。它首先生成一个唯一的ID,然后它将使用System.Threading.Tasks.Task.Factory.StartNew()
创建一个新任务,该任务将生成报告,并在任务继续在后台运行时最终返回唯一ID。 IsReportFinished将只检查系统中的唯一ID以查看报告是否已完成。完成后,可以使用唯一ID来检索报告。
但是我需要一种方法来取消任务,这是通过向IsReportFinished添加一个新参数来实现的。使用cancel==true
进行调用时,它将再次检查报告是否已完成。如果报告完成,则无需取消。否则,它需要取消任务
如何取消此任务?