D中使用std.parallelism的成员函数的任务

D中使用std.parallelism的成员函数的任务,d,parallel-processing,D,Parallel Processing,我想创建一个执行结构或类的成员函数的任务: import std.parallelism, std.stdio; struct S { void foo() { writeln("S.foo()"); } } void main() { S s; auto pool = new TaskPool(); auto t = task!(s.foo)(); // error pool.put(t); pool.finish()

我想创建一个执行结构或类的成员函数的任务:

import std.parallelism, std.stdio;

struct S {
    void foo() {
        writeln("S.foo()");
    }
}

void main() {
    S s;
    auto pool = new TaskPool();
    auto t = task!(s.foo)(); // error
    pool.put(t);
    pool.finish();
}
我怎样才能做到这一点?我还尝试使用代理,但没有效果


编辑:我发现了一个可能相关的问题

输出:

S.foo()
您也可以使用
scopedTask
,但是您必须等到任务完成后才能返回<代码>任务池。完成不等待。

如果使用
S.foo()