c# - 长时间运行进程的线程选项

标签 c# winforms multithreading .net-3.5

哪种线程模型最适合这种情况:我有一个进程可能需要几分钟才能完成,一旦它启动,我就无法控制运行的代码。该过程将出错或返回结果。

我想让用户取消这个过程。我不需要流程来报告其进度,只需要它完成或出现错误即可。如果进程被取消,则不需要清理。

我查看了各种线程选项并注意到添加取消似乎我需要在运行代码中实现某种取消标志,这在我的情况下是不可能的。添加线程超时也是不切实际的。我考虑过在 AppDomain 中运行我的进程,但感觉这种方法可能是死路一条。

使用 C# 3.5 Winform。

最佳答案

实际上,一个单独的 AppDomain 或 Process 是取消它的唯一安全方法。 Thread.Abort() 非常不安全,不建议使用。

关于c# - 长时间运行进程的线程选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873917/

相关文章:

c# - 当我有多个表单时,如何在单击标题栏中的十字时关闭应用程序?

.net - 在什么情况下我应该使用不同的 .NET 线程方法?

java - 合法线程 Action 的定义

C# 在 INSERT 查询中调用 ST_GeomfromText 函数

c# - 生成多个随机数

c# - Entity Framework 中的类和接口(interface)层次结构?

c# - 删除 Oracle 中不存在的记录是否被认为是错误的形式?

c# - 如何建立包含变量的路径?

c# - 在一个永久线程中运行事件处理程序

c# - 将 Windows 窗体嵌入到 WPF 应用程序中