Предотвращение бесконечного цикла Lua

Я использую lua-интерфейсы, чтобы получить поддержку lua в моей программе на C #, рабочий поток зависает, если пользователь отправляет такой код

while true do end

У меня есть способ определить, выполняется бесконечный цикл, но мне нужен хороший способ выхода из метода DoString из потока Worker. Любые идеи?

редактировать :@kikito, Да, я ненавижу это как-то так. Моя проблема заключается в том, что я не могу найти чистый способ убить метод DoString, похоже, что основной класс интерфейса Lua (Lua )имеет некоторые статические зависимости, потому что, если я сделаю lua.Close();на своем экземпляре, он будет прервать метод DoString, но в следующий раз, когда я создам экземпляр класса lua new Lua();, он рухнет, говоря что-то о защитной памяти

редактировать :Ветвь функций, показывающая мой код.Closehttps://github.com/AndersMalmgren/FreePIE/tree/detect-and-recover-infite-lua-loop

10
задан Anders 23 July 2012 в 10:36
поделиться