- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我们的应用程序正在从数据库或 http 请求中读取一些数据并且用户点击取消按钮时,我希望能够立即取消从数据库或 http 请求中读取。这两个调用都不能立即取消,即使对于调用的异步版本也是如此。
如果我将代码设置为在下一个数据库/http 调用完成后立即结束任务怎么办?然后忘记那个任务并继续在我的应用程序中?我可以看到的一个缺点是如果在用户存在应用程序之前任务没有完成。
更新:
JPVenson 为 http 和 ADO.NET 提供了一个很好的解决方案。但是,我们有时也会调用 Salesforce API,据我所知,它没有取消机制。所以这个问题仍然存在。
在取消时,我不需要返回的内容,因此从我的应用程序的角度来看,我可以忘记任务。这样做有什么缺点吗?
最佳答案
你会如何“杀死”一个任务? AFAIK 你只能“杀死”线程而不是任务,因为它们没有这样的机制。
使用标准 TaskScheduler 时,任务将作为 ThreadPoolItem 入队。并且在您停止应用程序的情况下,所有 ThreadPool 线程都将被终止,包括所有等待/仍在运行的任务。
对于标题:这确实取决于任务的类型,但总的来说,您总是希望至少出于日志记录的目的观察任何任务的结果。如果您不观察并处理任务引发的潜在异常,则您的应用程序可能会面临“损坏状态”的风险,其中任务可能会以您之前未预料到的方式崩溃,从而更改您的应用程序中的数据有道理。
所以是的,强烈建议您至少处理所有任务以进行日志记录和纠错/观察。
取消 HTTP 调用:WebClient: how to cancel a long running HTTP request?
对于取消 SQL 命令:这是另一种方式,在很大程度上取决于您使用的 ORM
- 英孚 Cancelling an Entity Framework Query
- Ado.Net https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.cancel?view=netframework-4.8
关于.net - 使任务成为孤儿有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59549554/
我四处寻找是否有任何合适的方法来处理 CSS3 多列中的寡妇和孤儿,但很失望地发现没有。我自己尝试了 widow 和 orphan 属性,但它们什么也没做。 有人知道使用 CSS3 多列并处理寡妇和孤
从 Blobstore 中删除孤立 blob 的最有效方法是什么? 应用功能和范围: 一个(已登录)用户想要创建一个包含一些常规内容的帖子数据存储区字段(例如姓名、姓氏、评论)和 blob(图像)。
从 Blobstore 中删除孤立 blob 的最有效方法是什么? 应用功能和范围: 一个(已登录)用户想要创建一个包含一些常规内容的帖子数据存储区字段(例如姓名、姓氏、评论)和 blob(图像)。
我可以使用哪种级联类型以及在何处让 Hibernate 在不再有“事物”引用图像时自动删除该图像? (基本上就是 Hibernate 中的垃圾收集) 数据库:事物表-图像表,是多对一的,所以很多事物可
我是一名优秀的程序员,十分优秀!