Видимость переменных в калбэк функциях

Страницы: 1
RSS
Видимость переменных в калбэк функциях
 
Добрый день

Из за того, что калбэк функции выполняются в других потоках, возник такой вопрос
Например

local var1 = 3
local var2 = 5

function OnInit
 DS:SetUpdateCallback(MyMainProcess)
end

function MyMainProcess(index)
 var3=var1+var2
end

Вопрос: чему будет равняться var3?

ЗЫ: Я понимаю, что это легко выяснить, но калбэк функции в выходной не работают

Спасибо
 
Цитата
Владимир Б****ов написал:

Вопрос: чему будет равняться var3?

"... local variables have their scope limited to the block where they are declared. A block is:
- the body of a control structure,
- the body of a function,
- a chunk (the file or string where the variable is declared)."

Таким образом, если весь этот код находится в одном файле,
var3 = 8

Цитата
Владимир Б****ов написал:
калбэк функции в выходной не работают

Вот это неважно. Данный вопрос с таким же успехом легко проясняется:

local var1 = 3
local var2 = 5

function OnInit
var3=var1+var2
end

или если угодно:

local var1 = 3
local var2 = 5

function OnInit
MyMainProcess(1)
end

function MyMainProcess(index)
 var3=var1+var2
end

Не имеет значения, в каком контексте, в каком потоке и кем вызывается функция.
 
Цитата
SDL написал:
local var1 = 3
local var2 = 5
я тоже не понял вопроса. Ведь переменные у вас описаны снаружи всех процедур, а значит внутри них они будут видны  
 
Цитата
Владимир Б****ов написал:
Из за того, что калбэк функции выполняются в других потоках,
Напишите подробнее, это как?
 
Спасибо всем, вопрос решен
Страницы: 1
Читают тему
Наверх