Канал, вызывающий скачки памятиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Канал, вызывающий скачки памяти

Сообщение Anonymous »

Я изучаю библиотеку каналов C# и пытаюсь создать шаблон производитель/потребитель. Я написал простой пример и обнаружил, что при его запуске происходит огромный скачок памяти. Пожалуйста, помогите мне выяснить, почему это происходит. Я использую .NET 8, Visual Studio 2022.

Код: Выделить всё

public class Program
{
static async Task Main(string[] args)
{
ProducerConsumerManager manager = new ProducerConsumerManager();
DataGenerator generator = new DataGenerator();
int data = 0;
_ = Task.Run(async () =>
{
for (int i = 0; ; i++)
{
data = generator.GenerateData();
await manager.ProduceAsync(data);
}
});

while (true)
{
var message = await manager.ConsumeAsync();
Console.WriteLine(message);
}
}
}
public class DataGenerator
{
private Random rand = new Random();

public int GenerateData()
{
return rand.Next(0, 200);
}
}

public class ProducerConsumerManager
{
private static Channel _channel = Channel.CreateUnbounded();
private ChannelWriter _writer = _channel.Writer;
private ChannelReader _reader = _channel.Reader;

public async Task ProduceAsync(T data)
{
await _writer.WriteAsync(data);
}
public async Task ConsumeAsync()
{
return await _reader.ReadAsync();
}
}
Я попробовал добавить await Task.Delay(500) в конце цикла for, но память все еще увеличивается.

Подробнее здесь: https://stackoverflow.com/questions/790 ... mory-hikes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Канал, вызывающий скачки памяти
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Канал, вызывающий скачки памяти [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Канал, вызывающий скачки памяти
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Канал C#, вызывающий увеличение памяти
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Канал C#, вызывающий увеличение памяти [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»