protected override Variable Evaluate(ParsingScript script) { string funcName = Utils.GetToken(script, Constants.NEXT_OR_END_ARRAY); var initPointer = script.Pointer; List<Variable> args = script.GetFunctionArgs(); string arg1 = Utils.GetSafeString(args, 0, null); string arg2 = Utils.GetSafeString(args, 1, null); string arg3 = Utils.GetSafeString(args, 2, null); ParserFunction func = ParserFunction.GetFunction(funcName, script); Utils.CheckNotNull(funcName, func, script); if (func is CustomFunction) { CommonFunctions.RunOnMainThread(func as CustomFunction, arg1, arg2, arg3); return Variable.EmptyInstance; } ParsingScript tempScript = script.GetTempScript(script.String, initPointer); PrintConsoleFunction.Print("RunOnMain rest=" + tempScript.Rest); CommonFunctions.RunFunctionOnMainThread(func, tempScript); //Thread.Sleep(100); return Variable.EmptyInstance; }