Je ne sais pas si c'est ce que vous cherchez. J'utilise quelque chose de similaire au code ci-dessous pour charger environ 300 images (environ 200 mb) et ne pas du tout ralentir l'interface utilisateur. (l'utilisateur peut voir chaque image chargée, je garde juste une image de l'espace réservé vide jusqu'à ce que l'image finale soit chargée)
Les images sont chargées dans un fil de fond, puis la fonction est appelée pour les mettre réellement dans la scène WPF.
Voici un exemple simple utilisant une zone de texte. Vous pouvez appeler cette fonction à partir de n'importe quel thread et cela fonctionnera si elle doit changer le thread graphique. (pour mon projet bien sûr, je le fais avec des bitmaps, pas une zone de texte).
delegate void UpdateUIThreadDelegate(String str);
public void DisplayString(String strMessage)
{
if (this.InvokeRequired)
{
UpdateUIThreadDelegate updateDelegate = DisplayString;
this.BeginInvoke(updateDelegate, strMessage);
return;
}
myTextBox.Text = strMessage;
}
Vive Anton
accord sur un autre thread + 1. – Anvaka
Désolé, j'ai oublié de mentionner que je génère ma carte/graphique en XAML en utilisant la liaison. Corrigez-moi si je me trompe, mais dans ce cas, je ne peux pas utiliser un travailleur de fond parce que la carte est rendue dans le fil de rendu caché correct? – Nathan