К сожалению смутно понимаю многопоточность… со всякими там критическими секциями связываться не охота. Надо как можно проще предотвратить одновременное выполнение функции в двух потоках.
Пока решил сделать с помощью переменной (объявленной вне функции), типа
- Код: Выделить всё
function MyClass.Something(arg1: Integer): Boolean;
begin
if Run = 0 then
begin
Run := 1;
// здесь основной код функции
Run := 0;
end;
end;
Правда здесь (как я понял) нет гарантии, что функция не будет вызвана одновременно несколько раз.
Подскажите пожалуйста
Спасибо!