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






