Soran
C# İşlemleri sırayla yaptırma

Soru
-
Öncelikle herkese kolay gelsin.
Bir forumda 4 tane timer'ım var. 1. timer gelen değerleri sürekli check ediyor. 2. - 3. ve 4. timer ise gelen değerlere göre işlem yapıyorlar. 2 veya 3 label'a aynı anda değer geldiğinde önce label1 dekini sonra 2 en son 3.labeldaki işlemi yapması lâzım.
Fakat 3 ünü birden yapmaya çalışıyor. Eğer else if koyarsam 1. işlemi yaptığı için 2. ve 3. labellere geçmiyor. Nasıl bir yol izlemem gerekiyor. Araya Threading attığımda da olmuyor. Yazılımda çok iyi değilim sadece bildiğim kadarıyla yol almaya çalışıyorum. Biraz açıklayıcı hatta detaylı yazarak yardımcı olmanızı isteyeceğim kusuruma bakmayın lütfen. Yardımlarınız için teşekkürler.
timer1'in interval değeri 0.500
Misal: if (Birden fazla koşul var. ((Checkbox1.checked || Checkbox2.checked) && label1 > 0 && label5<0 )
{
Şu işlemi yap. ( Buradaki işlem yaklaşık 1-1.5 saniye sürüyor. Aynı süre diğer labellarda da geçerli.)
}
if (label2.text > 0)
{
Şu işlemi yap.
}
if (label3.text > 0)
{
Şu işlemi yap.
}
- Düzenleyen Reoranc3 5 Ekim 2019 Cumartesi 02:20
Tüm Yanıtlar
-
-
-
-
-
-
-
1. timer sürekli olarak değişen değerleri site üzerinden okumak için. Borsa takibi gibi düşünebilirsiniz.
2. timer ise belirlediğim kriterlerin yerine getirilip getilmediğini kontrol edip belirlediğimiz değer kadar alma ya da satma işlemi yapacak.
3. timer ve 4. timer da 2. timer ile aynı işlemi yapıyor fakat hepsi farklı bir textbox'a değer girip next diyecek. Fakat 2-3 ve 4. timer aynı anda harekete geçtiklerinde sistem patlıyor.
Site bana aynı anda sadece 1 işlem yaptırıyor. O yüzden 2. timerın kriterleri tutuyorsa 3. ve 4. timerlar işlem yapmaması gerekiyor. O yüzden tıkanıp kalıyorum.
-
-
-
İşlem dizinizi queue'ye alabilirsiniz.
Örneğin. 1. timer_tick kuyruğa bir işlem atar. 2. timer_tick kuyruktan bir işlem alır yapar. gibi.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
-
Event + INotifyPropertyChanged sınıfı iş görür mü? Örneğin ad soyad ve ünvan içeriğinden herhangi biri değişince label'a anlık olarak hepsini yazdırmak gibi? (bkz detay)
ya da istediğin şey t1, t2, t3 şeklinde sıralı yapayım ama etli etliye sütlü sütlüye karışmasın diyorsan Task + Task.ContinueWith kullanabilirsin.
Yukarıda da söylendiği gibi timer doğru bir yaklaşım değil.
TR| Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz. EN| If this is the answer to your problem, mark "Propose as Answer" and if it is helpful, you can contribute to the workig of the forum by "Voting".
-