Task when used on a function that takes parameters doesnt work.
Daniel Kozak
kozzi11 at gmail.com
Thu Nov 12 15:12:55 UTC 2020
On Thu, Nov 12, 2020 at 4:05 PM Ruby The Roobster via Digitalmars-d-learn <
digitalmars-d-learn at puremagic.com> wrote:
> Here is a test that I did:
>
> void func(int i)
> {
> Thread.sleep(i.seconds);
> }
> void main() {
> auto test = Task!func(3);
> test.executeInNewThread();
> test.yeildForce();
> }
>
> This gives the following errors(I'm using Code::Blocks as an IDE
> by the way, so this is what the IDE outputted):
> d:\Programs\D\dmd2\windows\bin\..\..\src\phobos\std\parallelism.d|516|Error:
> function `hello.func(int i)` is not callable using argument types `()`|
>
> d:\Programs\D\dmd2\windows\bin\..\..\src\phobos\std\parallelism.d|516|
> missing argument for parameter #1: `int i`|
>
> hello.d|8|Error: template instance `std.parallelism.Task!(func)`
> error instantiating|
>
>
> Any fix for this?
>
You have some typos there
import core.thread;
import std.parallelism;
void func(int i)
{
Thread.sleep(i.seconds);
}
void main() {
auto test = task!(func)(3);
test.executeInNewThread();
test.yieldForce();
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20201112/c36dae85/attachment.htm>
More information about the Digitalmars-d-learn
mailing list