Zdravím. Udělal jsem aplikaci s cca deseti pictureBoxy. Jenže když
aplikaci roskliknu, trvá strašně dlouho, než se načtou všechny komponenty.
Nevíte někdo jak tento proces urychlit, nebo jak by se to dalo jinak
řešit?
Popiš přesněji program co má dělat. Kolik tam máš komponent ? Je
potřeba je mít všechny inicializované hned ze začátku ? nešlo yb to
rozdělit na více formů ? Proč tolik PictureBoxů ?
Představ si například mapu (form s pozadím mapy). A na mapě jsou
pictureBoxy, které symbolizují body. Po kliknutí na daný bod (pB) se otevře
nové okno (form) s informacemi o daném bodě. A jelikož jde ze startu vidět
celá mapa, je potřeba, aby všechny pB byly inicializované současně hned ze
startu.
Rozdělit to načítání dobrázků do více vláken-> 3 vlákna ->
Main, BackgroundWorker1 a BackgroundWorker2. Každému BackgroundWorkeru dáš
načíst 5 PB. (a bud se nactou soucasne, na to pouzijes RunWorkCOmplete Event,
nebo se nactou tak jak je vlakna spracuji)
Pár odkazů - na netu je toho spousta, stačí googlit:)
Je nějaký zásadní rozdíl mezi BackgroundWorkerem a Threadem? Myslím z
hlediska vytížení procesoru. A jak mám přidělit BGW1 5 pBoxu, když ty se
načítají z metody InitializeComponent(). Děkuji.
Zkusiljsem hlavní program běžet na MainThreadu a
inicializaci jsem provedl v bgWorker1. Je to sice o něco
rychlejší, ale stále je to pomalé Tak jsem zkusil inicializaci provést v NewThreadu...
Rychlost načítání je stejná a vytížení CPU je nižší. Jak je to
možné?
Jestli je to i přes BGW pomalé, tak rychlejší způsob nenajdeš.
Inicializace pictureboxu je hold nákladná narežii jen mě napadá, to dělat
paralelně tu inicializaci.
Jestli je to i přes BGW pomalé, tak rychlejší způsob nenajdeš.
Inicializace pictureboxu je hold nákladná narežii jen mě napadá, to dělat
paralelně tu inicializaci.
Přes Graphic to asi nepůjde... Ty body nejsou jen tečky, ale jsou to
obrázky typu PNG... Například, kdyby byla mapa Evropy, tak na pozici
Paříže by byl pictureBox Eiffelovy věže atd. Napadlo mě, že bych místo
pBoxů použil labely, ale nevím, jestli je rozdíl mezi inicializací pBoxů a
labelů...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.