WPF рендерится медленнее с большим количеством процессоров

Я действительно в растерянности по этому поводу. У меня есть расширитель, который содержит ItemsControl, который выглядит примерно так:

<ItemsControl ItemsSource="{Binding Source={StaticResource SomeItems}}">
   <ItemsControl.ItemTemplate>                                
      <DataTemplate>
         <StackPanel>
            <ContentControl Content="{Binding}" />
         </StackPanel>
      </DataTemplate>
   </ItemsControl.ItemTemplate>                                
</ItemsControl>

Это прекрасно воспроизводится при расширении на большинстве машин (одно- и двухъядерные). По какой-то причине при работе на новой машине с четырехъядерным процессором (i7) расширение этого расширителя занимает считанные минуты. Я сделал некоторые профилирования, и кажется, что есть проблемы синхронизации потоков, когда WPF измеряет элементы, фактическое время, затрачиваемое на измерение и рендеринг, кажется незначительным, время, затрачиваемое на ожидание синхронизации потоков, составляет большую часть этого. Кто-нибудь еще видел что-нибудь подобное?

К вашему сведению - я пытался сделать это на трех разных четырехъядерных (i7) машинах, и у меня возникла та же проблема. Без проблем работает на многих старых машинах. Я подтвердил, что машины полностью исправлены и что WPF использует аппаратный рендеринг. Сделали обязательную переустановку приложения и фреймворка.

Какие-нибудь идеи, где еще искать?

Спасибо

- некоторые обновления из комментариев -

- как только расширитель был расширен, разрушен и повторно -расширение происходит быстро на проблемных машинах

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

-Мы работаем .Net 4.0

- Некоторые спецификации по запросу - Win XP SP 3 on Intel Core i7 (4 cores) M 620 @ 2.67GHZ 2.98 GB of RAM 275 GB available storage

6
задан Christoph 19 August 2010 в 17:58
поделиться