То, как я обрабатываю события щелчка в данных, связало меню в WPF

%MEM, вероятно, не полностью задокументировано в вашей системе. Руководство AIX о команде ps гласит:

%MEM

Рассчитывается как сумма числа страниц рабочего сегмента и сегмента кода в памяти 4 (что значение RSS), деленное на размер используемой реальной памяти, в машине в КБ, умноженное на 100, округленное до ближайшего полного процентного пункта. Это значение пытается передать процент реальной памяти, используемой процессом. К сожалению, как и RSS, он имеет тенденцию преувеличивать стоимость процесса, который разделяет текст программы с другими процессами. Кроме того, округление до ближайшей процентной точки приводит к тому, что все процессы в системе, у которых значения RSS меньше 0,005 реального объема памяти, имеют% MEM 0,0.

Как вы могли догадаться, изучив выходные данные, было применено некоторое округление. Поэтому, если значение слишком низкое, печатается% 0.0.

И это процентный показатель реального использования памяти, что означает, что он не отражает размер процесса, а только то, какая часть процесса фактически отображается в реальную память.

В вашем первом случае% 0.0 для ЦП просто означает, что процесс существует, но на самом деле ничего не делает, и он, вероятно, находится в состоянии ожидания (или потребляет очень маленький процент вычислительной мощности), а не «что это не так в использовании". Во втором случае ваш процесс активен, на самом деле он очень занят (это отражено в %97.7), но то, что он делает, глупо (бесконечный цикл ничего не делает).

Чтобы понять все это, вы можете прочитать о состоянии процесса, планировании процесса и виртуальной памяти.

10
задан Chris Browne 1 December 2008 в 10:20
поделиться

2 ответа

<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, чтобы переключиться и действовать по мере необходимости

14
ответ дан 3 December 2019 в 19:36
поделиться

У Вас мог быть каждый пункт меню, выполняют ту же команду, таким образом обрабатывая выполнение централизованно. Если необходимо отличить пункты меню вне экземпляра фактического объекта, можно связать параметр команды также:

<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 для конкретного пункта меню, который нажат.

5
ответ дан 3 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

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