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.
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.
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.
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.
OnTimer, OnTick, OnTrade... bunlar kesintilerdir.
Kıçını tekmelemek. Evet, korkunç bir rüya.
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.
Ö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
Örneğin, OnTick işleyicisinde birisi Sleep(100000) koyarsa; Peki, şimdi OnTimer , OnTrade hiç yaşamıyor mu, yoksa ne?
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.
Şimdi tam olarak bu. Ama intihar kolaydır. Mesaj kutusu ekrandayken daha kötü ve ben mutfakta çay içiyorum. Yurich ustaca belirtti.
İşte böyle çalışıyor.