Быстро выполнять команды без исчерпания памяти [закрыто]

Я пишу приложение .NET, которое работает на Mono. Он выполняет и получает вывод нескольких команд терминала каждую секунду или около того, непрерывно.

Однако через несколько секунд он выйдет из строя, потому что вывод будет нулевым.

При дальнейшем проверке это происходит из-за сбоя процесса, поскольку у него закончилось отсутствие памяти, например:

ERROR: System.ComponentModel.Win32Exception: ApplicationName='upower', CommandLine='-i /org/freedesktop/UPower/devices/battery_BAT0', CurrentDirectory='', Native error= Out of memory

Есть ли способ быстро выполнять команды при очистке памяти, используемой после использования, поэтому у нее не хватает памяти?

Я выполняю команды вроде поэтому:

 Dim ret As String = ""
 Dim proc As New System.Diagnostics.Process()
 proc.StartInfo.FileName = file 'i.e upower
 proc.StartInfo.Arguments = arguments 'i.e. -i /org/freedesktop/UPower/devices/battery_BAT0
 proc.StartInfo.UseShellExecute = False
 proc.StartInfo.RedirectStandardOutput = True
 proc.Start()
 ret = proc.StandardOutput.ReadToEnd()
 proc.WaitForExit()
 Return ret

Запуск «Mono -version» возвращает версию 3.2.8, если это помогает.

Я даже попытался помещать proc.WaitForExit() перед чтением вывода, но это didn Не помогите.

1
задан 8 February 2016 в 22:45

0 ответов

Другие вопросы по тегам:

Похожие вопросы: