2010年12月2日木曜日

内骨格 サブプロセス処理をキューイング

内骨格は、サブプロセスの処理を同期的に処理するための window.subProcessCall() を提供している。
また、サブスレッド処理を、キューイングして処理するための window.taskEnqueue() を提供している。

サブプロセス処理を、同期的に処理するのではなく、キューイングして処理するにはどうしたらよいか。
subProcessCall()は、メインスレッドの中で呼ばれることを想定しているので、サブスレッドの中で
subProcessCall()を呼ぶことはできない。そのかわりに、以下のように SubProcess クラスを直接
使用しよう。

    def command_SubProcessQueuingTest(args):
       
        def jobSubProcess( job_item ):
       
            cmd = [ "ipconfig", "/all" ]
            p = cfiler_subprocess.SubProcess( cmd, cwd=None, env=None )
            p()

        job_item = ckit.JobItem( jobSubProcess, None )
        window.taskEnqueue( job_item, u"SubProcess" )


近いうちに、cfiler_subprocess.SubProcess のように、わざわざ cfiler_subprocess名前空間を
明示しなくても、 SubProcess を使えるようにしておこうと思う。