Program Kendini Görünmez Yapıyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Program Kendini Görünmez Yapıyor

Mesaj gönderen fox »

İ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?
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Re: Program Kendini Görünmez Yapıyor

Mesaj gönderen fox »

Artık Tamamen Kapanıyor. Thread lerin yanlış kullanımından kaynaklanıyor olabilir mi? Fikri Olan Yokmu
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Program Kendini Görünmez Yapıyor

Mesaj gönderen mkysoft »

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.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Program Kendini Görünmez Yapıyor

Mesaj gönderen mrmarman »

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
Resim
Resim ....Resim
fox
Üye
Mesajlar: 78
Kayıt: 24 Nis 2006 08:28

Re: Program Kendini Görünmez Yapıyor

Mesaj gönderen fox »

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?
Cevapla