Kodda bekletme yapma

Kodla Büyü

ercrah

Aktif Üye
Mesajlar
178
selam arkadaşlar. kıt programlama bilgimle bluestack üzerinden oynadığım bir oyun için bot yazmaya calışıyorum.
oyunun yapısı gereği ekran değişimi gereken yerlerde kısa süreli bekleme yapmam gerekiyor.
beklemeler 0,1 sn ile 4 sn arasında değişiyor.

senaryo 1:

threading.thread.sleep komutu kulandığımda program çalışıyor. işlemci kullanımı %0 ile %1 aralığında ram kullanımı en fazla 6mb.

fakat sorun şu, program görev yöneticisinde "yanıt vermiyor" şeklinde ve kilitlenmis gibi davranıyor. araya girip müdahale edilemiyor.

senaryo 2;

internetten bulduğum başka bir bekletme fonksiyonu kullandığımda kilitlenme felan yok.

ama işlemci kullanımı % 25 - % 30 arasında, ram ise 30mb.



programı kilitlemeden işlemci kullanımını asgari seviyede tutacak başka bir yöntem varmıdır ?
 
Yeni konu açmadan, farklı bir soruna çözüm arayışı.

Yukaridaki programda Kodlama bitti, deneme asamasindayim.

Program herhangi bir kodlama hatası vermiyor. Düzgün olarak çalışıyor ama tam süre belli olmamakla beraber 2-3 saat arası çalıştıktan sonra en basit ve hatasız kodda hata verip çalışmayı bırakıyor.

Hata örnekleri:

bluestack programının açık olup olmadığını arada bir kontrol ediyor.
Onlarca kez hata yok, sonra birden hata oluşturuyor.

Ekrandaki belli bir noktanın piksel değeri kontrol edilirken hata oluşuyor. Ki sonuç olarak true veya false değeri döndürmesi gerekiyor. Bunu zaten 2 saat içinde en az 1000 kez yapıyor. Ama bazen hata veriyor.

Bunun gibi oluşmaması gereken en basit değer ataması, klavyeden bir tuşa basılması, bir diziden değer okunması gibi her seferinde farklı bir satırda hata çıkıyor.

Yanlış değer ataması veya gereksiz kod varmı diye onlarca kez kontrol ettim ama sorun bulamadım.

Bir öneri veya başka her türlü cevap çok makbule geçer.
 
Hatayı görsek belki daha iyi olurdu,
Lakin sorun "threading nightmare" gibi duruyor, thread le ilgili kodlarını görürsek belki birşey diyebiliriz.
form donuyor ise, threadin çağırdığı fonksiyonda Application.DoEvents(); satırını bir eklemeyi deneyin.
 
Formda donma yok. Kodları background worker ile ayrı kanaldan çalıştırıyorum.

hata veren kod, hata verene kadar yüzlerce kez calismis oluyor zaten.
Durduk yere neden hata verir ki? Onu anlayamıyorum.

Son hata resmi

https://i.hizliresim.com/76YZVY.png
 
Son düzenleme:
Geri
Üst