Hatena::Groupsubtech

ういはるかぜの化学

Monday, July 19, 2010

JScript (.NET)でスレッド 17:34  JScript (.NET)でスレッド - ういはるかぜの化学 を含むブックマーク はてなブックマーク -  JScript (.NET)でスレッド - ういはるかぜの化学

Big Sky :: JScript.NETでスレッドというお話

JScriptclassで宣言したものであればDelegateにできるのでC#を介さなくてもこんな感じのコードで何とかなりますね。

import System;
import System.Threading;

class JSThread {
    var _func;
    function JSThread(func : Function) {
        this._func = func;
    }
    function Run(args : Object) : void {
        this._func(args);
    }
    static function Create(func : Function) : Thread {
        var wrap = new JSThread(func);
        var t = new Thread(ParameterizedThreadStart(wrap.Run));
        return t;
    }
}

var th = JSThread.Create(function (v) {
    for (var n = 1; n <= 6; n++) {
        print("thread" + n + " " + v);
        Thread.Sleep(200);
    }
});
th.Start("foo");

Thread.Sleep(200);
print("main1");
th.Suspend();
Thread.Sleep(200);
print("main2");
Thread.Sleep(200);
print("main3");
th.Resume();

ちなみに.NET 2以降のJScriptJScript.NETと呼ばれていなかったりします。今はJScript 8とかJScript 10とか。でもJScript 9はIE9のという…。

トラックバック - http://subtech.g.hatena.ne.jp/mayuki/20100719