gpt4 book ai didi

c# - 如何在 C# 中限制线程 RAM 使用

转载 作者:行者123 更新时间:2023-12-02 01:27:25 25 4
gpt4 key购买 nike

我想限制 C# 中的线程可以分配多少 RAM,这样超出此限制的分配将失败/崩溃或线程将终止。

例如,假设我在 C# 中有 3 个托管线程,线程 A、B 和 C。我想限制所有这三个线程使用不超过 100 MB 的 RAM。如果他们这样做了,那么我希望他们在不影响其他线程的情况下崩溃。

现在在我看来,由于 C# 是一种基于虚拟机的语言,并且使用垃圾收集器,因此理论上这应该是可行的,而无需尝试使用限制进程 RAM 使用的操作系统功能。

如何实现这样的目标?任何指导将不胜感激。

最佳答案

您不能限制一个线程或一组线程使用的 RAM,因为线程拥有的唯一 RAM 是它的堆栈(大约 1MB 内存)。在堆中分配的内存由程序的所有线程共享。它不属于任何线程或线程组。 C# 语言或 .NET 运行时中没有任何规定可防止特定线程与堆中分配的对象进行交互。如果要限制可用于操作的 RAM 量,则必须将此操作隔离在单独的进程中,而不是单独的线程中。

关于c# - 如何在 C# 中限制线程 RAM 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74167872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com