【问题标题】:Need guidance about multithreading application in c# [closed]需要有关 C# 中的多线程应用程序的指导 [关闭]
【发布时间】:2011-05-25 14:24:46
【问题描述】:

如果那里有任何多线程 c# 实用程序,我对这个概念的了解有点少。但是如果遇到以下情况怎么办? 运行了 1000 个线程,如果一个或多个线程在执行过程中失败,那么有什么计划可以恢复它,或者当我失败时有什么方法可以从当前状态重新启动它?

【问题讨论】:

  • 取决于您的情况?您的线程是如何实现的等等......您需要更加具体才能回答这个问题!
  • 您应该使用ThreadPool 类或等效类

标签: c# multithreading synchronization


【解决方案1】:

你的问题很不清楚,但这里有一些想法:

  • 就内存消耗和应用程序性能而言,生成 1000 个线程通常是一个非常糟糕的主意。而是考虑使用ThreadPool 或任务并行库。
  • 如果在一个线程中引发异常并且该线程不处理该异常,您的应用程序将崩溃。如果您想集中管理这种情况,您可以附加到事件Application.ThreadException 来处理这种情况,例如在关闭您的应用程序之前向用户显示某种抱歉消息。

【讨论】:

  • 我确信它会在 catch 块中遇到异常。但是我如何才能从当前状态继续线程,同时解决其他线程不应该受到影响。补救措施是什么...这是否意味着在catch块中我需要通过它的身份调用线程,当前状态?如果是,我们如何存储它的当前状态?
  • 嗯,这真的取决于情况。如果异常不严重,您可能会捕获并吞下它。但不应使用异常来控制程序流程。不过,这个问题已经结束,所以要获得有意义的答案,您应该创建一个新的、更具体的问题。
【解决方案2】:

本文和网站上的其他几篇文章将帮助您掌握 .NET 中的线程。

http://www.codeproject.com/KB/threads/ThreadingDotNet.aspx

【讨论】:

  • 对不起,这是给初学者的指南。但是 OP 想要在两者之间重新启动问题线程。 OP应该如何了解它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 2017-01-06
相关资源
最近更新 更多