C# form timer neden kasıyor?

FireHawk

Hectopat
Katılım
3 Ekim 2020
Mesajlar
337
Çözümler
5
Daha fazla  
Cinsiyet
Erkek
C# form timerda aynı anda birkaç işlem yapılınca kasıyor. Resimdeki gemilerin hareketleri kasıyor. Bu ağır işlem mi ki kasıyor neden olabilir?
Nasıl çözebilirim?

1640255545825.png
 
Uzun süre çalışan herhangi bir işlem performansı düşürür. System.Threading.Timer kullanırsan daha faydalı olur. Koduna bakmadan söylüyorum bu arada.
 
Uzun süre çalışan herhangi bir işlem performansı düşürür. System.Threading.Timer kullanırsan daha faydalı olur. Koduna bakmadan söylüyorum bu arada.
System.Threading.Timer sanırım süreli timer. Benim ki her zaman çalışmalı. Çünkü gemiyi hareket ettiriyorum. Doğru mu anlamışım ?
Zaten başlar başlamaz kasıyor.
 
System.Threading.Timer sanırım süreli timer. Benim ki her zaman çalışmalı. Çünkü gemiyi hareket ettiriyorum. Doğru mu anlamışım ?
Zaten başlar başlamaz kasıyor.
Hayır hocam o da sürekli çalışır. Timer UI da çalışır System.Threading.Timer arka planda çalışır. Bu nedenle daha performanslı olur. Hatta BackgroundWorker'da bir araştır istersen o da işini görebilir.
 
Önemli değil hocam. Hatta BackgroundWorker çok daha iyi olacaktır. Arka planda çalıştırman ve onu dinleyip gerektiği anda UI'a yansıtırsan sorunun çözülür. Biraz araştırırsan (ingilizce bir şekilde) bu sorunu yaşayan diğer insanlar çözüme nasıl ulaşmış bulabilirsin. İyi kodlamalar.
 
C# form timerda aynı anda birkaç işlem yapılınca kasıyor. Resimdeki gemilerin hareketleri kasıyor. Bu ağır işlem mi ki kasıyor neden olabilir?
Nasıl çözebilirim?

Eki Görüntüle 1249340
İşlemci kullanımındaki dalgalanmayı inceleyiniz. Bu kötü kodun sebep olduğu bir durumdur. Böyle basit grafikleri bulunan bir oyun ile gereksiz döngüler oluşturarak işlemci kullanımını bu kadar dalgalı tutabiliyorsanız lütfen düzgün bir yerden C# öğrenip tekrar bu işe giriniz. Eğer acil lazımsa kodunu github'da paylaşıp link bırakabilirsin. İşi bilen kişiler bu koda performans optimizasyonu yapıp seninle paylaşabilirler.
 
Ne Thread var ne BackgroundWorker var. Önce bunları öğrenin.

İşlemci ne sıraya göre işlem yaptığını bilseydiniz zaten konu açmanıza gerek kalmazdı. Async işlem yapmanız gerekiyor.

Thread ve BackgroundWorker yapısını aynı anda kullanmanız gerekiyor. Arka planda yapılan işlemleri BackgroundWorker ile yapabilirsiniz. Ancak çok yoğun veri akışı olacak ise kasmaya neden olabilir. Ancak Thread yapısı ile birlikte kullanırsanız sorun kalmaz.
 

Geri
Yukarı