rush
ifadesi, iki veya daha fazla asenk ifadesinden oluşan bir bloku eşzamanlı olarak (aynı anda) çalıştırmak için kullanılır.
En hızlı alt ifade tamamlandığında rush
ifadesinden sonraki bir ifade değerlendirilir ve kalan tüm alt ifadeler değerlendirmeye devam eder.
set WinnerResult = rush:
# Üç asenk fonksiyonu da aynı anda başlar
AsyncFunctionLongTime()
AsyncFunctionShortTime() # Bu kazanır ve sonucu kullanılır
AsyncFunctionMediumTime()
# En hızlı asenk fonksiyon (AsyncFunctionShortTime()) tamamlandıktan sonra bir sonraki ifade çağrılır.
# Diğer tüm alt ifade görevleri (AsyncFunctionLongTime(), AsyncFunctionMediumTime()) devam eder.
NextExpression(WinnerResult)
AsyncFunction4()
# AsyncFunction4 tamamlandığında herhangi bir rush alt ifade görevi hâlâ çalışıyorsa
# bu görevler artık iptal edilir.
Aşağıdaki kod, rush
ifadesinin sözdizimini gösterir.
expression0
rush:
slow-expression
mid-expression
fast-expression
expression1
Aşağıdaki diyagramda ifadeler için yürütme akışı gösterilmiştir.
Rush İfadesinin Kullanımı
Bir rush ifadesini kullanabildiğin yerler |
Asenk. bağlamlar |
rush ifadesinin çağrı süresi |
Asenk. |
rush kod bloku gereksinimleri |
rush ifadesinin gövdesinde en az iki ifade olmalı ve ifadelerin tümü asenk olmalıdır. |
rush ifadesinin fonksiyonu |
race ifadesine benzer ancak ilk tamamlamadan sonra tamamlanan ifadeler devam eder. Herhangi bir ifade aynı simülasyon güncellemesinde etkili bir şekilde tamamlanırsa daha önce karşılaşılıp tamamlanan ifade herhangi bir beraberliği bozar. Tamamlanmamış ifadeler tamamlanana kadar veya çevresindeki asenk. bağlam tamamlanana kadar (hangisi önce gerçekleşirse) değerlendirmeye devam eder ve ikinci durumda kalan tüm kaybeden ifadeler iptal edilir. |
rush ifadesi ne zaman tamamlanır |
rush ifadesi, kod blokundaki birinci ifade tamamlandıktan sonra tamamlanır. Bu en hızlı, en kısa uzunluktaki, birinci tamamlanan veya tamamlanması en az süren ifade olabilir. |
rush ifadesinden sonraki ifadenin başlama zamanı |
rush ifadesinden sonra gelen herhangi bir ifade, tamamlanan ifade bittiğinde başlatılır. |
rush ifadesinin sonucu |
Bir rush ifadesinin sonucu, ilk tamamlanan ifadenin sonucudur. Sonuç türü, kod bloğundaki tüm ifadelerin en yaygın uyumlu türüdür. |
Bir rush
ifadesi, loop
veya for
gibi bir yineleme ifadesinin gövdesinde şu anda kullanılamaz. Kullanılması zorunluysa, bir asenk. fonksiyonun içine paketle ve yineleme ifadesinin bu fonksiyonu çağırmasını sağla.