I like how PureBasic handle thread. Maybe it can help to get some idea.
Structure Person
Name$
Age.b
Phone.l
EndStructure
Procedure Thread(*Parameters.Person)
; Display the parameters
;
Debug *Parameters\Name$
Debug *Parameters\Age
Debug *Parameters\Phone
; Once we don't need them anymore, use ClearStructure() to ensure than every dynamic
; objects (if any) are correctly cleared, and release the dynamic memory block
ClearStructure(*Parameters, Person)
FreeMemory(*Parameters)
EndProcedure
; We use a dynamically allocated block, so even if we call it from a procedure, it will
; still work. The memory block will be freed by the thread, when
;
*Parameters.Person = AllocateMemory(SizeOf(Person))
*Parameters\Name$ = "John"
*Parameters\Age = 30
*Parameters\Phone = 10203040
CreateThread(@Thread(), *Parameters) ; Send the thread a pointer to our structure
Delay(2000)
http://www.purearea.net/pb/english/manual/thread/index.html
Quote: "Out of curiosity, what multithreading would people want?
I could see it being beneficial for loading image animations and loading/saving assets. I'm not sure what else though."
Just manage functions on a different thread.
--
BASIC languages don't mean for me a "primitive languages", more a
way to work.
I love PureBasic for that, it is a Basic language, but powerful. And I can work quickly with this tools without big headache. Just perfect for indie dev like me, or small studios.
--
Hope your understand my bad English...
Arbrakan