Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要关于c中多线程应用程序的指导吗#_C#_Multithreading_Synchronization - Fatal编程技术网

C# 需要关于c中多线程应用程序的指导吗#

C# 需要关于c中多线程应用程序的指导吗#,c#,multithreading,synchronization,C#,Multithreading,Synchronization,如果有任何多线程c#实用程序,我对这个概念的了解就有点贫乏。但如果遇到以下情况呢? 在运行1000个线程的情况下,如果一个或多个线程在执行过程中失败,那么有什么计划来恢复它,或者当我失败时有什么方法可以将它从当前状态重新启动?本文和网站上的其他几篇文章将帮助您掌握.NET中的线程处理 你的问题很不清楚,但这里有一些想法: 就内存消耗和应用程序性能而言,产生1000个线程通常是一个非常糟糕的主意。而应考虑使用线程池> />代码>或任务并行库。 如果在一个线程中抛出异常,而该线程未处理该异常,则应

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

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


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

  • 就内存消耗和应用程序性能而言,产生1000个线程通常是一个非常糟糕的主意。而应考虑使用<代码>线程池> />代码>或任务并行库。
  • 如果在一个线程中抛出异常,而该线程未处理该异常,则应用程序将崩溃。如果要集中管理这种情况,可以附加到事件
    应用程序。ThreadException
    以处理这种情况,例如在关闭应用程序之前向用户显示某种抱歉消息

这取决于您的情况?线程是如何实现的等等。。。你需要更具体地回答这个问题!您应该使用
ThreadPool
类或等效类。这是初学者的指南。但是OP希望在两者之间重新启动问题线程。OP应该如何了解它?我确信它在catch块中遇到异常。但我如何才能继续线程从其当前状态,同时解决其他线程不应受到影响。什么是补救办法。。。这是否意味着在catch块中,我需要通过线程的标识(当前状态)调用线程?如果是,我们如何存储它的当前状态?好吧,这真的取决于情况。如果异常不严重,您可能会捕获并吞下它。但异常不应用于控制程序流。然而,这个问题是封闭的,所以为了得到有意义的答案,你应该创建一个新的,更具体的问题。