Thread takılması / bir kaynak fazla uzun sürüyor
Tek bir script her şeyi bekletti. Genel bir takılmadan farklı olarak bu, sorumlu kaynağı adlandırır.
Önce şunu yap
Adlandırdığı kaynağı not et — sorun oradadır.
Ne anlama gelir
Bir script thread'i, zamanlayıcının beklediği yerde yield etmedi. O taraftaki diğer her şey bekler. Bir hitch warning gibi bu da bir arıza değil bir belirtidir, ama bir takılma genelde genel yük yerine belirli bir kod parçasını işaret eder.
Neden olur
Ne sıklıkla doğru cevap olduğuna göre sıralı.
- 1
Wait'siz bir döngü
Klasik olan.
while true do enddenetimi hiç geri vermez. - 2
Bir tick içinde engelleyen bir await
Her karede çalışan bir thread'in içinde
MySQL.query.awaitya daCitizen.Await. - 3
Devasa bir eşzamanlı işlem
Çok büyük bir JSON yükünü tek seferde kodlamak ya da çözmek, ya da yüz binlerce girdisi olan bir tabloyu dolaşmak.
- 4
Koşulu hiç sağlanmayan bir while döngüsü
Var olmayan bir model için
while not HasModelLoaded(m) do Wait(0) endsonsuza kadar döner. Böyle her beklemenin bir son tarihe ihtiyacı vardır. - 5
Taban durumu olmayan özyineleme
Nadirdir, ama tam olarak böyle görünür.
Hangisinin seninki olduğu nasıl anlaşılır
Mesaj kaynağı adlandırır. İçinde, Wait içermeyen while ve for döngülerine, ve bir CreateThread içindeki her .awaite bak.
Nereye bakmalı
Adı geçen kaynaktaki her döngü.
Nasıl düzeltilir
Her beklemeye bir son tarih ver, ve her döngüde yield et:
local deadline = GetGameTimer() + 5000
while not HasModelLoaded(model) and GetGameTimer() < deadline do
Wait(0)
end
if not HasModelLoaded(model) then return endÇok büyük işi karelere böl:
for i = 1, #huge do
process(huge[i])
if i % 500 == 0 then Wait(0) end
endHâlâ kendi kodunda mı takıldın?
Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.
bug_reportServer Fixer'ı açBu tür bir hata için Script Optimizer sana kare kaybettiren şeyi bulur ve yeniden yazar.