41 lines
952 B
Haxe
41 lines
952 B
Haxe
|
import sys.thread.Thread;
|
||
|
import sys.io.File;
|
||
|
|
||
|
@:cppInclude("./ThreadCode.cpp")
|
||
|
class Test
|
||
|
{
|
||
|
static var mainThread:Thread;
|
||
|
|
||
|
@:native("runThread")
|
||
|
extern static function createNativeThread():Void;
|
||
|
|
||
|
public static function callFromThread()
|
||
|
{
|
||
|
trace("Same:" + (mainThread==Thread.current()) );
|
||
|
mainThread.sendMessage("Done");
|
||
|
}
|
||
|
|
||
|
public static function main()
|
||
|
{
|
||
|
var me = Thread.current();
|
||
|
mainThread = me;
|
||
|
Thread.create( function() {
|
||
|
File.copy("a.txt","b.txt");
|
||
|
me.sendMessage("Done");
|
||
|
trace("Same thread:" + (me==Thread.current()) );
|
||
|
} );
|
||
|
var result = Thread.readMessage(true);
|
||
|
trace(result);
|
||
|
|
||
|
for(x in 0...20)
|
||
|
{
|
||
|
trace("call...");
|
||
|
createNativeThread();
|
||
|
trace("zzz...");
|
||
|
Sys.sleep(1);
|
||
|
var result = Thread.readMessage(true);
|
||
|
trace(result);
|
||
|
}
|
||
|
}
|
||
|
}
|