%MEM
, вероятно, не полностью задокументировано в вашей системе. Руководство AIX о команде ps
гласит:
%MEM
Рассчитывается как сумма числа страниц рабочего сегмента и сегмента кода в памяти 4 (что значение RSS), деленное на размер используемой реальной памяти, в машине в КБ, умноженное на 100, округленное до ближайшего полного процентного пункта. Это значение пытается передать процент реальной памяти, используемой процессом. К сожалению, как и RSS, он имеет тенденцию преувеличивать стоимость процесса, который разделяет текст программы с другими процессами. Кроме того, округление до ближайшей процентной точки приводит к тому, что все процессы в системе, у которых значения RSS меньше 0,005 реального объема памяти, имеют% MEM 0,0.
blockquote> blockquote>Как вы могли догадаться, изучив выходные данные, было применено некоторое округление. Поэтому, если значение слишком низкое, печатается% 0.0.
И это процентный показатель реального использования памяти, что означает, что он не отражает размер процесса, а только то, какая часть процесса фактически отображается в реальную память.
В вашем первом случае% 0.0 для ЦП просто означает, что процесс существует, но на самом деле ничего не делает, и он, вероятно, находится в состоянии ожидания (или потребляет очень маленький процент вычислительной мощности), а не «что это не так в использовании". Во втором случае ваш процесс активен, на самом деле он очень занят (это отражено в
%97.7
), но то, что он делает, глупо (бесконечный цикл ничего не делает).Чтобы понять все это, вы можете прочитать о состоянии процесса, планировании процесса и виртуальной памяти.
<MenuItem Header="My Items" ItemsSource="{Binding Path=MyMenuItems}" Click="DataBoundMenuItem_Click" />
Код позади..
private void DataBoundMenuItem_Click(object sender, RoutedEventArgs e)
{
MenuItem obMenuItem = e.OriginalSource as MenuItem;
MessageBox.Show( String.Format("{0} just said Hi!", obMenuItem.Header));
}
События будут пузыриться до общего обработчика. Можно затем использовать Текст заголовка или лучше свойство DataContext, чтобы переключиться и действовать по мере необходимости
У Вас мог быть каждый пункт меню, выполняют ту же команду, таким образом обрабатывая выполнение централизованно. Если необходимо отличить пункты меню вне экземпляра фактического объекта, можно связать параметр команды также:
<MenuItem Header="My Items" ItemsSource="{Binding Path=MyMenuItems}">
<MenuItem.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Command" Value="{x:Static local:MyCommands.MyCommand}"/>
<Setter Property="CommandParameter" Value="{Binding SomeProperty}"/>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
SomeProperty
как предполагается, свойство на каждом объекте в Вашем MyMenuItems
набор. Ваш обработчик выполнения команды поэтому получил бы значение SomeProperty
для конкретного пункта меню, который нажат.