我想创建一个执行结构或类的成员函数的任务:
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();
}我怎样才能做到这一点?我也试图使用代表,但没有结果。
编辑:我发现了一个可能相关的问题here。
发布于 2012-03-04 04:26:39
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); // Constructor taking a runtime function pointer, delegate or callable (opCall).
pool.put(t);
pool.finish();
}输出:
S.foo()您也可以使用scopedTask,但是必须等到任务完成后才返回。TaskPool.finish不等待。
https://stackoverflow.com/questions/9539125
复制相似问题