J'ai un wxTextCtrl et j'ai besoin de mettre une très grande chaîne dedans. (Comme une chaîne de 15 Mo) Le seul problème est que c'est très lent. Voici ce que je fais:Pourquoi wxTextCtrl est-il si lent à afficher du texte?
char * buff = ...
wxString data(buff, wxConvUTF8);
text->ChangeValue(data);
Cependant, ce n'est pas le goulot d'étranglement. Cela se produit dès que la fonction retourne ce bloc de code. L'application entière se fige pendant environ 30 secondes. J'ai essayé wxYield juste après ChangeValue et cela provoque l'affichage des premières lignes de la chaîne dans le contrôle mais il se fige après. Comment puis-je éviter ça?
Je dois souligner que ChangeValue revient presque instantanément. Le délai se produit après cela, probablement dans les gestionnaires de messages internes de wxTextCtrl ou quelque chose.
Il semble que les personnes qui ont conçu wxTextCtrl n'aient pas prévu que quelqu'un bourrerait une chaîne de 15 Mo (environ la taille d'un livre de programmation). –
J'ouvre un journal de serveur. –
Vous pouvez implémenter un mécanisme de pagination et ne charger qu'une petite fenêtre du texte total en même temps. Cette approche devrait être presque instantanée. Je n'ai pas assez d'expertise dans wxWidgets pour vous dire comment faire cela, cependant. –