İyi Günler
Ben bir program yazdım. Program belirtilmiş sayfalara girip sayfaları hdd ye kaydediyor. Ama program yaklaşık 15 dk çalıştıktan sonra kendini görünmez yapıyor. Ama Görev yöneticisinden baktığımda programın çalıştırğını görebiliyorum. Sebebini bir türlü anlayamadım. İçinde bunu sağlayacak hiç bir kod yok. Program çalışırken cpu nun göstergesi %100 civarında dolaşıyor. Ram kapasitem yeterli bunda bir problem olmaz gibi geliyor. 4 tane bilgisayarda da denedim. Hem Vista Hem XP hemde Server 2003 de hepsinde sonuçlar aynı. Benim tahminim CPU dan kaynaklanıyor gibi geliyor. Sizce bu problem neden kaynaklanıyor.
İçinde bolca thread kullanıyorum bundan olabilirmi?
Program Kendini Görünmez Yapıyor
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Program Kendini Görünmez Yapıyor
Artık Tamamen Kapanıyor. Thread lerin yanlış kullanımından kaynaklanıyor olabilir mi? Fikri Olan Yokmu
Re: Program Kendini Görünmez Yapıyor
Anlattığınıza göre çok karmaşık bir program olmuş, hangi tarafına öneri yazabileceğimi bilmedim. Thread kullanımı başlı başına zaten hassas bir iş. Her nesne thread desteklemez, break point koyup debug edemezsiniz, v.s. Thread kurallarına uyup uymadığınızı kontrol edin. Program gizleniyor derken, sanırım görüntüsünü göremiyorsunuz, buda threadlerden çok normal kodlarınıza bir sorun olacağı anlamına gelebilir.
Re: Program Kendini Görünmez Yapıyor
Soru 1: Thread sayısı limiti önceden belli mi ? Sorun : Belli değilse sürekli yeni thread açacak durumlar oluşuyorsa şişer.
Soru 2: "Program belirtilmiş sayfalara girip sayfaları hdd ye kaydediyor" demişsiniz. Bu sayfaları kaydettikten sonra thread sona erdiriliyor mu yoksa açık unutulmuş olabilir mi ? Sorun : Bu sayfalardan kaydedilemeyen olursa veya açılması için timeout oluşmayıp da sonsuz döngüye giriyorsa thread kapanamaz. Bu durumda da şişer.
şimdilik bu kadar
Soru 2: "Program belirtilmiş sayfalara girip sayfaları hdd ye kaydediyor" demişsiniz. Bu sayfaları kaydettikten sonra thread sona erdiriliyor mu yoksa açık unutulmuş olabilir mi ? Sorun : Bu sayfalardan kaydedilemeyen olursa veya açılması için timeout oluşmayıp da sonsuz döngüye giriyorsa thread kapanamaz. Bu durumda da şişer.
şimdilik bu kadar
Re: Program Kendini Görünmez Yapıyor
Kanalları oluşturan bir TThread sınıfı.
Yani ilk olarak bir kanal açıyorum oda gidiyor 150 tane kanal açıyoror
Collection: array of TThreadCollection;
Kanal:TThreadKanal;
Kanal ı oluşturup içinde
SetLength(Collection,Adet);
Sleep(10);
for kanalsayisi:=0 to Length(Collection)-1 do
begin
try
Collection[kanalsayisi]:=TThreadCollection.Create(form1.idhttp1);
sleep(2);
except
//showmessage('');
end;
end;
Thread sayısı değişken ama program başladında sabitleniyor. Bir daha müdahale almıyor.
Threadlar hep açık şekilde bekliyor yani sürekli site tarıyor. (2000-3000 sayfa olduğu için kolay bitmiyor) ancak ben dur dediğim zaman
if terminated then
exit
yapıyorum
evet bu da dikkatimi çekti onuda try expect ile algılayıp döngüden çıkartıyorum. böylede bir sorun yok. Acaba thread içinden thread oluşturdum için böyle bir problem olurmu?
Yani ilk olarak bir kanal açıyorum oda gidiyor 150 tane kanal açıyoror
Collection: array of TThreadCollection;
Kanal:TThreadKanal;
Kanal ı oluşturup içinde
SetLength(Collection,Adet);
Sleep(10);
for kanalsayisi:=0 to Length(Collection)-1 do
begin
try
Collection[kanalsayisi]:=TThreadCollection.Create(form1.idhttp1);
sleep(2);
except
//showmessage('');
end;
end;
Thread sayısı değişken ama program başladında sabitleniyor. Bir daha müdahale almıyor.
Threadlar hep açık şekilde bekliyor yani sürekli site tarıyor. (2000-3000 sayfa olduğu için kolay bitmiyor) ancak ben dur dediğim zaman
if terminated then
exit
yapıyorum
evet bu da dikkatimi çekti onuda try expect ile algılayıp döngüden çıkartıyorum. böylede bir sorun yok. Acaba thread içinden thread oluşturdum için böyle bir problem olurmu?