En iyi yanıtlayıcılar
Form açılırken Titreme sorunu

Soru
-
merhabalar;
seriport üzerinden gelen datalara göre form çagırıp açıyorum.
formu tam ekran açıyorum kodu bu ,
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;seriporttan gelen data için
aşağıdaki kodu kullanıyorum basarılı yanlız form çağırırken formda titreme meydana gelıyor.
sankı 2 3 defa açılıyormus gibi ama 1 form açılıyor thread mı kullanmalıyım öneriniz varsa yazmanız ricasıyla
try { SerialPort sp = (SerialPort)sender; var s = sp.ReadExisting()); Invoke((Action)(() => { if (s == "<1") { Form2 hakan = new Form2(); hakan.Show(); } })); } catch (Exception ex) { }
Yanıtlar
-
WPF ile yapmak lazım, form aç kapa olmaz o iş.
Ayrıca model oluşturup, dictionary içine koymak lazım :)
proje baştan yapılmalı anlayacağın.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak İşaretleyen Hakan sevim 12 Ağustos 2016 Cuma 11:36
Tüm Yanıtlar
-
WPF ile yapmak lazım, form aç kapa olmaz o iş.
Ayrıca model oluşturup, dictionary içine koymak lazım :)
proje baştan yapılmalı anlayacağın.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak İşaretleyen Hakan sevim 12 Ağustos 2016 Cuma 11:36
-
-
ObjectPool sistemini araştırabilirsin. Yaptığın şey güvenli değil ve büyük hatalı bir kod. Doğrusu için async Task kullanarak çağırman, await ile okuman gerekir.
Titreme sebebi büyük ihtimal form ekrana çizilmesi için gereken kaynağı, projen asenkron olmadığı için Read()'a harcıyor. Bu yüzden FPS düşüşü gibi birşey oluyor.
Diğer bir önerim ise bu kodu FormLoad olayında çağırmaman. Önce constructor çağırılıp, daha sonra form'un düzgün yüklenip yüklenmediğini kontrol ettikten sonra çalıştırman daha yararlı olur. Bu şekilde form elementlerin yüklenmesi gereken kaynağı SerialPort'a harcıyorsun.- Düzenleyen lFurkanl 12 Ağustos 2016 Cuma 15:04