zamanlayıcı - sayfa 6

 
Yurich :
Kesinti, OnTick'in yürütüldüğü ve OnTimer gibi daha önemli bir olayın geldiği zamandır. OnTick'in yürütülmesi askıya alınır, OnTimer kodu yürütülür, ardından OnTick yeniden yürütülmeye devam eder.
Kıçını tekmelemek. Evet, korkunç bir rüya.
 
pusheax :

OnTimer, OnTick, OnTrade... bunlar kesintilerdir.

Ben de ilk başta öyle düşündüm. Ama seçenekler var. Örneğin, herhangi bir OnTimer iş parçacığını kesintiler kelimesiyle işaretleyemeyiz ve bir OnTimer olayı meydana geldiğinde, tam olarak olay anında çağrılacağını ve diğer olayların işlenmesini kesintiye uğratacağını biliyoruz (tek iş parçacıklı MSDOS şemasına göre). - yığını kaydedin, kesmeyi işleyin, yığını geri yükleyin, kontrolü daha fazla aktarın). Böyle bir şema, birçok sorunu daha basit yöntemlerle çözebilir. Örneğin OnTik denilen böyle bir şema oldukça hoş görünüyor. Burada incelikler var - tekrarlanan girişlerin işlenmesi gerekli olacak (örneğin, küçük bir boşlukla iki onay), ancak bu genel olarak çözülebilir.
 
TheXpert :
Kıçını tekmelemek. Evet, korkunç bir rüya.
Aslında Yurich, kesintiyi tam olarak klasik anlamda tanımladı ve OnTick, OnTimer kesintilerinin işlenmesini değil
 
Örneğin, biri OnTick işleyicisine Uyku (100000) koyarsa; Peki, şimdi OnTimer , OnTrade hiç yaşamıyor mu, yoksa ne?
 
TheXpert :
Kıçını tekmelemek. Evet, korkunç bir rüya.

Hayır, korkunç değil. Sorunlardan nasıl kaçınılacağı konusunda gelişmiş eski şemalar var.

Ama yine de bir rüya. Geliştiricilerin bunu yapacağına inanmıyorum. Avantajları inkar edilemez olmasına rağmen.

Örneğin, OnTimer'da arka plan hesaplamalarını, zamanlayıcı süresinin yarısı kadar küçük bir sıklıkta (yaklaşık her 5 saniyede bir) çalıştırabilirim. Ve arka plan hesaplamasını basitçe kesintiye uğratabilecek ve ardından doğru bir şekilde doğru yerine geri döndürebilecek olan keneleri işleme konusunda endişelenmenize gerek kalmayacaktı. Ve şimdi, kenelerin işaretlendiği aynı iş parçacığında doğru şekilde işlemektense, onu ayrı bir grafiğe koymak daha kolay. Aynı akışta herkes için yeterli zaman olmasına rağmen.

 
pusheax :
Örneğin, OnTick işleyicisinde birisi Sleep(100000) koyarsa; Peki, şimdi OnTimer , OnTrade hiç yaşamıyor mu, yoksa ne?

zamanlayıcıdaki olaylar ve yeni onay işaretleri yok sayılır. ticaret olayı kuyrukta kalacak ve işlenecek

Tick, Trade, Timer olaylarını ve bunların OnTick, OnTrade, OnTimer işleyicilerini karıştırmayın

 
pusheax :
Örneğin, OnTick işleyicisinde birisi Sleep(100000) koyarsa; Peki, şimdi OnTimer , OnTrade hiç yaşamıyor mu, yoksa ne?
Şimdi tam olarak bu. Ama intihar kolaydır. Mesaj kutusu ekrandayken daha kötü ve ben mutfakta çay içiyorum. Yurich ustaca belirtti.
 
stringo :
Aslında Yurich, kesintiyi tam olarak klasik anlamda tanımladı ve OnTick, OnTimer kesintilerinin işlenmesini değil

Anlattığını anlıyorum.

Tek iş parçacıklı bir uygulamada verileri senkronize etmek ve erişimi yönetmek çılgınlığın zirvesidir.

 
MetaDriver :
Şimdi tam olarak bu. Ama intihar kolaydır. Mesaj kutusu ekrandayken daha kötü ve ben mutfakta çay içiyorum. Yurich ustaca belirtti.
Ve şimdi anlıyorum, Timer olayının kendisi gerçekleşecek, ancak OnTimer işlemesi OnTick tamamlanana kadar ertelenecek.
Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
Программы MQL5 / События клиентского терминала - Документация по MQL5
 
pusheax :
İşte böyle çalışıyor.
Eğer :)