Асинхронное выполнение сценариев
- 
 Записи в таблице CE представим как сценарии, которые должны выполнятся асинхронно. Т.е. они что-от делают некоторое время одновременно, например, сканируют память. При этом ничего зависает. Для этого будем актировать такую опцию 
  Если эту опцию поставить на записи, то появляются вот такие часики 
  АА-шные скрипты могут искать в этот момент сигнатуру. Lua скрипты потестить было интересно, узнать действительно ли асинхронно выполняется. Например, один скрипт выполняет счет, второй выполняет счет. По выполнении выводится результат. [ENABLE] {$lua} local _, counter, _, async = memrec.Description:match('(Cunt.=.)(%d*).*(Async.=.)(%w*)') memrec.Async = async == 'true' for i = 1, counter do end local currentTime = os.date("%c"):gsub('/','.') print('Finish record:' .. memrec.Description..', at time ' .. currentTime) memrec.Active = false function onMemRecPostExecute(memoryrecord, newState, succeeded) if (memoryrecord == memrec and newState == true) then memrec.Active = false end end {$asm} [DISABLE] После выполнения 
  Если продублировать 4 скрипта, то видим, что нельзя запустить асинхронно более двух скриптов 
  Вот такой вариант еще [ENABLE] {$Lua} function threadFunction(th) th.freeOnTerminate(false) th.Name = 'myThread' for b = 1, 200000000 do --checkSynchronize() end --while not th.Terminated do -- myvar=myvar+1 -- synchronize(function() MainForm.Caption = 'myvar '..myvar end) -- sleep(2000) --end synchronize(function() print("1") end) end --myvar=0 local myThread = createNativeThreadSuspended(threadFunction) myThread.resume() {$Asm} [DISABLE] {$Lua} if myThread then myThread.terminate() myThread.waitfor() myThread.destroy() myThread=nil end {$Asm}таблица 
 Asynchronous testing.CT
 
 
 
 
 
