c# - 开始,停止,暂停和继续运行很长时间的方法

标签 c# .net multithreading .net-4.0 task-parallel-library

我有一个方法正在运行很长时间。我希望能够停止,暂停和继续执行该方法。我查看了this question,答案很不错,但我想使用更通用的库,例如TPL。
TPL具有取消机制,但是我找不到暂停/继续功能。

编辑

感谢您提供所有答案。但是问题是我不写那种“长时间运行”的方法,我只是调用那个方法。

最佳答案

实现此目的最简单的方法是使用BackgroundWorker控件。它支持取消和进度报告。

http://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx

http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/48305e65-cea6-4a88-8818-c122e152daa8

编辑

哦,我明白了。好吧,除非您想挂起线程,否则没有“干净”的方式来暂停和恢复您未编写的方法。而且,如果该方法不是线程安全的,那么您可能会很不幸。 http://msdn.microsoft.com/en-us/library/d00bd51t.aspx

关于c# - 开始,停止,暂停和继续运行很长时间的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506457/

相关文章:

c# - Monodevelop 中的 MySQL ASP.NET MVC

c# - C# 中的队列和等待句柄

java - java中的TCP套接字编程和多线程

c# - 使用 RX 在不同时间触发事件?

c# - 将 XML 文件反序列化为 C# 类

c# - 安装项目的自动增量版本

c# - 为什么 .net 6 中的 JWTBearer 不起作用?它不断返回 invalid_token

c# - 如何获取 Windows 2008 和 .NET 中包含 "skipassource"地址的系统 IP 地址列表?

c# - 异常类型 'System.ObjectDisposedException'

java - 聚合已完成的线程并在超时后发送响应 rX Java