это работает для меня:
bool hasColumnName = reader.GetSchemaTable().AsEnumerable().Any(c => c["ColumnName"] == "YOUR_COLUMN_NAME");
Несмотря на то, что ответ Жан-Батиста верен, я считаю, что в данном случае более важно, что вся 0 память во всех трех процессах, которые вы отмечаете, являются потоками ядра. Их память - это вся память ядра, и она не отображается сверху или пс. Вы можете сказать, что это поток ядра в linux как по команде, заключенной в квадратные скобки, так и по процессу, не занимающему память в столбце VSZ. (Это столбец, представляющий практически все, что можно считать памятью процесса. Это только 0 для потоков ядра, и это только потому, что они не сообщают должным образом свою память.
Также обратите внимание, что со временем запуска в 2018 и, потратив не более 1 минуты 41 секунды, ни одна из этих работ на самом деле не очень активна.
%MEM
, вероятно, не полностью задокументировано в вашей системе. Руководство AIX о команде ps
гласит:
%MEM
Рассчитывается как сумма числа страниц рабочего сегмента и сегмента кода в памяти 4 (что значение RSS), деленное на размер используемой реальной памяти, в машине в КБ, умноженное на 100, округленное до ближайшего полного процентного пункта. Это значение пытается передать процент реальной памяти, используемой процессом. К сожалению, как и RSS, он имеет тенденцию преувеличивать стоимость процесса, который разделяет текст программы с другими процессами. Кроме того, округление до ближайшей процентной точки приводит к тому, что все процессы в системе, у которых значения RSS меньше 0,005 реального объема памяти, имеют% MEM 0,0.
blockquote> blockquote>Как вы могли догадаться, изучив выходные данные, было применено некоторое округление. Поэтому, если значение слишком низкое, печатается% 0.0.
И это процентный показатель реального использования памяти, что означает, что он не отражает размер процесса, а только то, какая часть процесса фактически отображается в реальную память.
В вашем первом случае% 0.0 для ЦП просто означает, что процесс существует, но на самом деле ничего не делает, и он, вероятно, находится в состоянии ожидания (или потребляет очень маленький процент вычислительной мощности), а не «что это не так в использовании". Во втором случае ваш процесс активен, на самом деле он очень занят (это отражено в
%97.7
), но то, что он делает, глупо (бесконечный цикл ничего не делает).Чтобы понять все это, вы можете прочитать о состоянии процесса, планировании процесса и виртуальной памяти.