task

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Görev kütüphanesi, motorun planlayıcısıyla işlevlerin ve iş parçacıklarının planlanmasına izin verir.

Bu kütüphanedeki işlevler genellikle işlevleri ve iş parçacıklarını destekler.Çoğu durumda bir işlev kullanmak yeterlidir, ancak daha gelişmiş durumlar için kendinizi coroutine kütüphanesi ile tanımanız önerilir.

Özet

İşlevler

  • spawn(functionOrThread : function | coroutine,... : Variant):coroutine

    İşlev/korutin hemen motorun planlayıcısı aracılığıyla çağrılar/devam eder.

  • defer(functionOrThread : function | coroutine,... : Variant):coroutine

    Mevcut yeniden başlatma döngüsünün sonunda bir işlev/korutin çağrısı/yeniden başlatmasını yapar.

  • delay(duration : number,functionOrThread : function | coroutine,... : Variant):coroutine

    Verilen süre (saniyeler) geçtikten sonra bir işlev/rutinin çağrılmasını/yeniden başlatılmasını planlar ve kısıtlamaya izin vermez.

  • Aşağıdaki kodun paralel olarak çalışmasına neden olur.

  • Aşağıdaki kodun seri olarak çalışmasına neden olur.

  • wait(duration : number):number

    Sınırlama olmadan mevcut iş parçasını verir.

  • cancel(thread : coroutine):()

    Bir iptal iptal eder, yeniden başlatılmasını engeller.

İşlevler

Bir işlevi veya bir iş parçacığını ( tarafından döndürüldüğü gibi) kabul eder ve motorun planlayıcısı aracılığıyla hemen çağrır/yeniden başlatır.İlkten sonraki argümanlar işlev/ipucuna gönderilir.

Eğer çağrılan senaryo şu anda seri bir çalışma aşamasında çalışıyorsa, oluşturulan işlev veya iş parçacığı mevcut seri çalışma aşamasında yeniden başlatılır.Eğer çağrılan senaryo şu anda paralel bir çalışma aşamasında çalışıyorsa, oluşturulan işlev veya iş parçacığı mevcut paralel çalışma aşamasında yeniden başlatılır.Daha fazla bilgi için, Paralel Luau görün.

Parametreler

functionOrThread: function | coroutine

coroutine.create() tarafından döndürülen bir işlev veya bir işlem başlığı.

...: Variant

İşlev veya iş parçasına göndermek için argümanlar.

Dönüşler

Planlanan işlem.

Bir işlevi veya bir iş parçacığını (coroutine.create() tarafından döndürüldüğü gibi) kabul eder ve mevcut çerçevenin içindeki mevcut duraklama noktasının sonuna kadar erteletir.

Bu işlev, task.spawn() benzer bir davranış gerektiğinde kullanılmalıdır, ancak işletimin hemen çalışması gerekmez.

Çağrı yazılımı şu anda seri bir çalışma aşamasında çalışıyorsa, gecikmiş işlev veya iş parçacığı seri bir çalışma aşamasında yeniden başlatılır.Eğer çağrılan senaryo şu anda paralel bir yürütme aşamasında çalışıyorsa, gecikmiş işlev veya iş parçacığı paralel bir yürütme aşamasında yeniden başlatılır.Daha fazla bilgi için, Paralel Luau görün.

Parametreler

functionOrThread: function | coroutine

coroutine.create tarafından döndürülen bir işlev veya bir iş parçası.

...: Variant

İşlev veya iş parçasına göndermek için argümanlar.

Dönüşler

Planlanan işlem.

Bir işlevi veya bir iş parçacığını (coroutine.create() tarafından döndürüldüğü gibi) kabul eder ve belirlenen süre (saniyeler içinde) sonra bir sonraki Heartbeat ardından çağrılmasını veya yeniden başlatılmasını planlar.İkinci sonra gelen argümanlar işlev/ipucuna gönderilir.

Bu işlev, delay() **** fonksiyonundan farklıdır, çünkü Heartbeat adımlarda, işlevin çağrılması/yeniden başlatılması garanti edilir.Sıfır süresi sağlanması ( 0 ), işlevin bir sonraki Heartbeat 'de çağrılacağını garanti edecektir.

Planlama sırasında ve planlanan işlevde os.clock() 'yi arayarak gerçek süreyi hesaplayabilirsiniz.

Çağrı yazılımı şu anda seri bir çalışma aşamasında çalışıyorsa, gecikmiş işlev veya iş parçacığı seri bir çalışma aşamasında yeniden başlatılır.Çağrı yazılımı şu anda paralel bir yürütme aşamasında çalışıyorsa, gecikmiş işlev veya iş parçacığı paralel bir yürütme aşamasında yeniden başlatılır.Daha fazla bilgi için, Paralel Luau görün.

Parametreler

duration: number

İşlev/İşletimin çağrılması veya yeniden başlatılmasından önce geçmesi gereken minimum saniye sayısı.

functionOrThread: function | coroutine
...: Variant

Fonksiyona/İşletmeye çağrılması/yeniden başlatılması gerektiğinde geçecek argümanlar.

Dönüşler

Planlanan işlem.

desynchronize

()

Eğer çağrılan kod şu anda seri bir çalışma aşamasında çalışıyorsa, desynchronize() kodu askıya alır ve kod bir sonraki paralel çalışma aşamasında yeniden başlatılacaktır.Çağrı yazılımı şu anda paralel bir çalışma aşamasında çalışıyorsa, desynchronize() hemen döner ve etkisi yoktur.

Sadece bir Actor 'in soyundan gelen yalnızca senaryolar bu yöntemi çağırabilir.Bir Actor dışındaki bir senaryo bu yöntemi çağırırsa, bir hata oluşur.ModuleScripts modülün çağrıldığı anının bir desynchronize() 'in soyundan gelen bir senaryo tarafından gerekli olduğu sürece çağrılabilir Actor .

Daha fazla bilgi için, Paralel Luau görün.

Dönüşler

()

synchronize

()

Eğer çağrılan kod şu anda paralel bir yürütme aşamasında çalışıyorsa, synchronize() kodu askıya alır ve kod bir sonraki seri yürütme aşamasında yeniden başlatılacaktır.Eğer çağrı yazılımı şu anda seri bir çalışma aşamasında çalışıyorsa, synchronize() hemen döner ve etkisi yoktur.

Sadece bir Actor 'in soyundan gelen yalnızca senaryolar bu yöntemi çağırabilir.Bir Actor dışındaki bir senaryo bu yöntemi çağırırsa, bir hata oluşur.ModuleScripts modülün çağrıldığı anının bir synchronize() 'in soyundan gelen bir senaryo tarafından gerekli olduğu sürece çağrılabilir Actor .

Daha fazla bilgi için, Paralel Luau görün.

Dönüşler

()

wait

Verilen süre (saniyeler) dolana kadar mevcut iş parçasını verir, ardından bir sonraki Heartbeat adımda iş parçasını yeniden başlatır.Gerçek süre geçmişi döndürülür.

Bir süre verilmezse, varsayılan olarak sıfıra düşecektir ( 0 ).Bu, işletmenin sonraki adımda yeniden başladığını gösterir, bu da davranış açısından Class.RunService.Heartbeat:Wait() ile eşdeğerdir

Eskitilmiş küresel wait() 'den farklı olarak, bu işlev yavaşlatmıyor ve gerektiğinde gerçekleşen ilk Kalp atışındaki işin yeniden başlatılmasını garanti ediyor.Bu işlev sadece geçen süre ve başka bir şey dönmez.

Çağrı yazılımı şu anda seri bir çalışma aşamasında çalışıyorsa, yazılım seri bir çalışma aşamasında yeniden başlatılır.Eğer çağrı yazılımı şu anda paralel bir yürütme aşamasında çalışıyorsa, yazılım paralel bir yürütme aşamasında yeniden başlatılır.Daha fazla bilgi için, Paralel Luau görün.

Parametreler

duration: number

Mevcut işlem yeniden başlamadan önce geçmesi gereken saniye sayısı. The amount of time in seconds that should elapse before the current thread is resumed.

Varsayılan değer: 0

Dönüşler

cancel

()

Bir iptal iptal eder ve bir iptali manuel olarak veya motorun planlayıcısı tarafından yeniden başlatılmasını engeller.

Bu işlev, onları durdurmak için önce yeniden başlatılmadan iptal etmek için görev kütüphanesinin diğer üyeleriyle birlikte kullanılabilir. Örneğin:


local thread = task.delay(5, function()
print("Hello world!")
end)
task.cancel(thread)

İptal edilemez bir durumda olabilecek iş parçacıklarının bir durumda olabileceğini unutmayın.Örneğin, şu anda yürütülen iş parçacığı ve başka bir korutin yeniden başlatılan iş parçacıkları iptal edilemeyebilir.Eğer durum buysa, bir hata oluşturulur.Ancak, kod başarısız olmasına neden olan belirli işletim durumlarına veya koşullara güvenmemelidir.Gelecekteki güncellemeler bu kısıtları ortadan kaldırır ve bu durumdaki işlemlerin başarıyla iptal edilmesine izin verir.

Parametreler

thread: coroutine

İptal edilecek olan işlemci.

Dönüşler

()