Thread overview | ||||||
---|---|---|---|---|---|---|
|
November 12, 2020 Task when used on a function that takes parameters doesnt work. | ||||
---|---|---|---|---|
| ||||
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? |
November 12, 2020 Re: Task when used on a function that takes parameters doesnt work. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ruby The Roobster Attachments:
| On Thu, Nov 12, 2020 at 4:05 PM Ruby The Roobster via Digitalmars-d-learn < digitalmars-d-learn@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(); } |
November 12, 2020 Re: Task when used on a function that takes parameters doesnt work. | ||||
---|---|---|---|---|
| ||||
Attachments:
| On Thu, Nov 12, 2020 at 4:12 PM Daniel Kozak <kozzi11@gmail.com> wrote:
> On Thu, Nov 12, 2020 at 4:05 PM Ruby The Roobster via Digitalmars-d-learn < digitalmars-d-learn@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();
> }
>
Typos: instead of Task you should write task, instead of yeildForce you should write yieldForce
|
November 12, 2020 Re: Task when used on a function that takes parameters doesnt work. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Daniel Kozak | On Thursday, 12 November 2020 at 15:12:55 UTC, Daniel Kozak wrote:
>[...]
Thanks.
|
Copyright © 1999-2021 by the D Language Foundation