On 08/01/2015 08:37 AM, maarten van damme via Digitalmars-d-learn wrote:
I have a class that creates a task in it's constructor. How do I store this
created task as one of it's value members and later on call .yieldForce()?


Tasks can be created with a function pointer 'function parameter' as well. (This has already been added to "Programming in D" but it is not available on the web site yet.)

I learned the exact type by the help of pragma(msg) below and used it to create MyTask and myTasks:

import std.parallelism;

double foo(int i)
{
    return i * 1.5;
}

double bar(int i)
{
    return i * 2.5;
}

void main()
{
    auto tasks = [ task(&foo, 1),
                   task(&bar, 2) ];    // ← compiles

    pragma(msg, typeof(tasks[0]));

    alias MyTask = Task!(run, double function(int), int)*;

    MyTask[] myTasks;
    myTasks ~= task(&foo, 1);
    myTasks ~= task(&bar, 2);
}

Ali

Reply via email to