โก Just an experiment to achieve multi-threading in AutoIt, as a library.
๐ All issues and pull requests are welcome!
๐ Give a star and subscribe (watch) to get notified about changes.
Download the latest release (or build from source).
Library files:
- N.au3 - AutoIt include file
- N.dll - 32-bit DLL dependency
- N64.dll - 64-bit DLL (optional if 32-bit only)
Simple example:
#NoTrayIcon
#include 'N.au3'
func task()
MsgBox(0, '', "Hello, I'm in another thread.")
endfunc
func main()
local $t = NRun('task')
NWait($t)
endfunc
NMain('main')
More examples:
See N.au3 to get all APIs.
Requirements:
- Visual Studio 2017+
- C++ desktop development
- Windows SDK 8.1+
Build steps:
- Open true-autoit-multi-threading.sln
- Restore Nuget packages
- Choose CPU arch -> x86/x64
- Press build -> N.dll/N64.dll
- Copy above DLLs and N.au3 to your script folder
Please see the C++ source code, I'll update soon ๐.
Yep, it's designed for both running script in AutoIt.exe and compiled (also upx packed) EXE.
After the first thread is created, the memory increases once ~EXE size. And +80kB after each thread done, that isn't memory leaks, they are static members/smart pointers of AutoIt interpreter still alive. They will be freed when process exits.
Yesh, it is implemented with hash table. I don't know why AutoItObject lookups property name through array sequentially.
Nope.
Not implemented yet.