Core Function ThreadCreate

From Sputnik Wiki
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
<pre>
 
<pre>
ThreadCreate( <name>, <function> )
+
ThreadCreate( <name>, <function>, <extra> )
 
</pre>
 
</pre>
  
Line 20: Line 20:
  
 
Either a function to call or a string to execute similar to Eval()
 
Either a function to call or a string to execute similar to Eval()
 +
 +
 +
==== extra====
 +
 +
Optional; A variable to passed to the thread as $arg for use
  
 
=== Return Value ===
 
=== Return Value ===
Line 64: Line 69:
 
sleep(500);
 
sleep(500);
 
}
 
}
 +
}
 +
</syntaxhighlight>
 +
 +
Here the extra param is used so it stores a variable in this case it stores the class object
 +
 +
<syntaxhighlight lang="sputnik">
 +
Class Testy
 +
{
 +
my $Name;
 +
Function __Construct( $Name )
 +
{
 +
$this->$Name = $Name;
 +
ThreadCreate("th1$Name", '$arg->ThreadFunc();', $this);
 +
}
 +
Function ThreadFunc()
 +
{
 +
while(true)
 +
{
 +
Println("$this->$Name | Hello from thread: '". ThreadName() . "'");
 +
sleep(1000);
 +
}
 +
}
 +
};
 +
 +
$Testy1 = new Testy("Meow");
 +
$Testy2 = new Testy("lol");
 +
 +
while(true)
 +
{
 +
DoEvents();
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
[[Category:Core Function]]
 
[[Category:Core Function]]

Revision as of 21:05, 13 January 2013

ThreadCreate( <name>, <function>, <extra> )

Contents

Description

Create a new thread and start it off executing a function or some code

Sputnik supports multi-threading and you can create threads in your code to assist you.

Threads work best if you use them as *worker threads*.

Parameters

name

Name of a thread to create.

function

Either a function to call or a string to execute similar to Eval()


extra

Optional; A variable to passed to the thread as $arg for use

Return Value

Success: Returns 1.

Failure: Returns 0.

Remarks

You can spawn as many threads as you wish however there are a few important things to consider with threads.

Example

ThreadCreate("th1", "Thread1Func();"); // This thread will execute a function
ThreadCreate("th2", "Thread2Func();"); // This thread will execute a function
ThreadCreate("th3", 'println("Thread 3 says hi");'); // This thread will execute code
 
inputc();
 
Function Thread1Func()
{
	while(true)
	{
		println("Hello from thread '" . ThreadName() . "'");
		sleep(500);
	}
}
 
Function Thread2Func()
{
	while(true)
	{
		println("Heya from thread '" . ThreadName() . "'");
		sleep(500);
	}
}

Here the extra param is used so it stores a variable in this case it stores the class object

Class Testy
{
	my $Name;
	Function __Construct( $Name )
	{
		$this->$Name = $Name;
		ThreadCreate("th1$Name", '$arg->ThreadFunc();', $this);
	}
	Function ThreadFunc()
	{
		while(true)
		{
			Println("$this->$Name | Hello from thread: '". ThreadName() . "'");
			sleep(1000);
		}
	}
};
 
$Testy1 = new Testy("Meow");
$Testy2 = new Testy("lol");
 
while(true)
{
	DoEvents();
}
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox