C#多线程环境中的OutOfMemoryException

C#多线程环境中的OutOfMemoryException,c#,multithreading,C#,Multithreading,这更多地涉及到一个面试问题——我被问了多次,在C多线程环境中,从内存异常中获取的最简单方法是什么。具体来说,我们如何在以下每个多线程机制中实现这一点: 异步委托 产生新线程 使用线程池 计时器 背景工人 我不知道多个线程需要做什么。获取异常的最简单方法是尝试分配大量的大值类型数组……”“在C#多线程环境中获取OfMemoryException的最简单方法”本身就是一个愚蠢的问题。获取OOM的最简单方法是执行类似于var foo=new long[int.MaxValue]的操作,不需要多线程。这

这更多地涉及到一个面试问题——我被问了多次,在C多线程环境中,从内存异常中获取
的最简单方法是什么。具体来说,我们如何在以下每个多线程机制中实现这一点:

  • 异步委托
  • 产生新线程
  • 使用线程池
  • 计时器
  • 背景工人

  • 我不知道多个线程需要做什么。获取异常的最简单方法是尝试分配大量的大值类型数组……”“在C#多线程环境中获取OfMemoryException的最简单方法”本身就是一个愚蠢的问题。获取OOM的最简单方法是执行类似于
    var foo=new long[int.MaxValue]
    的操作,不需要多线程。这是一个糟糕的面试问题……可能已经糟糕到让我无休止地上厕所了……这个问题没有多大意义。正如其他人所观察到的,当您想要创建OOM时,您只需分配内存(并保留引用),直到您创建它为止。感谢您的评论——我给出的一个答案是,如果您继续使用while循环将工作分配给线程池——最终它将耗尽分配并发出OutofMemoryException。正在寻找类似的建议/其他答案
    throw new OutOfMemoryException();