Sono davvero in perdita su questo. Ho un expander che contiene un ItemsControl che assomiglia a questo;Il rendering di WPF rallenta con più processori
<ItemsControl ItemsSource="{Binding Source={StaticResource SomeItems}}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<ContentControl Content="{Binding}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Questo rende bene quando si espande sulla maggior parte delle macchine (single e dual core). Per qualche ragione quando si esegue su una macchina nuova di zecca con un quad core (i7) espandendo questo expander prende in pochi minuti. Ho fatto un po 'di profilazione e sembra che ci siano problemi di sincronizzazione dei thread quando WPF sta misurando gli elementi, la misurazione della spesa in tempo reale e il rendering sembrano trascurabili, la spesa in attesa della sincronizzazione dei thread è la maggior parte di esso. Qualcun altro ha visto qualcosa di simile?
FYI - L'ho provato su tre diverse macchine quad core (i7) e ho lo stesso problema. Nessun problema con molte macchine precedenti. Ho confermato che le macchine sono completamente patchate e che WPF sta usando il rendering dell'hardware. Ho fatto l'applicazione obbligatoria e reinstallare la struttura.
Qualche idea dove altro da guardare?
Grazie
aggiornamenti --Alcuni da comments--
-once l'espansore è stato ampliato, collasso e ri-espansione sono veloci sulle macchine di problema
-anche quando rendering hardware è il comportamento disabilitato è lo stesso. Penso che dovrebbe rimuovere la scheda grafica dall'equazione.
-Ci sono in esecuzione .Net 4.0
--Alcune Spec come requested-- Win XP SP 3 su Intel Core i7 (4 core) M 620 @ 2.67GHZ 2.98 GB di RAM 275 GB di spazio disponibile
Intendo davvero più core, non più processori –
Le schede grafiche sono tutte identiche? Se no, questo sarebbe un posto dove guardare. – Russ
Inoltre, anche quando il rendering dell'hardware è disabilitato, il comportamento è lo stesso. Penso che dovrebbe rimuovere la scheda grafica dall'equazione? –