sag ol Elvin he duzdu mende thread-e istifadee etmisem sadece progress deyisenin qiymetini hesablamaqda problem var idii hell etdiim :)) Tesekkur
Pəncərənin donmağına gətirən prosessləri başqa thread-də etsən yaxşı olar,bu zaman donma olmaz. Əsas pəncərədə isə progress bar yerləşdirməklə onu thread-dən update edə bilərsən:
[code]
int progress
// prosessin davam etdiyi dovrün daxilində progress dəyişəninə
// prosessin neçə faiz yerinə yetirldiyini göstərən ədədi mənimsət və aşağıdakı kodla
// progressbar-ı update et
this.Invoke((MethodInvoker)delegate {
progressBar.Value = progress;
});
[/code]
progress dəyişənin qiymətini hesablamaq üçün məlumat yoxdursa(misal üçün fayl yükləyərkən bu məlumat məlum olur beləki, yuklənən məlumatın həcmini faylın ümumi həcminə bölüb 100-ə vurmaqla neçə faiz yükləndiyini tapmaq olar) onda sadəcəcə bir loading gif göstərə bilərsən
prosses bar meselesi deyil bilirem sadece sayta basligi avtomatik ele qoyublar
menim axtardigim odur ki meselen proses gedir secimden asili olaraq hardasa 1 deq ya 5 deq bu mesafeni teyin ede bilmirem men? sen deyen kimi bir pencere cixarmaq isteyirem ferqi yooxdu proqress var ya hansisa giif mene vaxti tapmaq lazimdir ki hemen gif proses qurtaran kimi baglansin
Progresbarla elageli meseleni deyil ama programın donmamağını isteyirsense o prosses işlemeye başlayanda çox tez tez tick'leyen timeri de eyni vaxtda start() edib içerisinde Application.DoEvents() metodunu çağırsan program donmaz. Ancaq eğer sen istemirsenki o vaxt erzinde user programda başqa iş görsün bir pencere çıxartmaq olar qarşısına içerisinde de gif bir şekilnen loading effekti vermek olar.
Kernel developer olmaq üçün hardan başlamalı
Java proqramlaşdırma dili haqqında kitablar