How create a function that receive a function and run it in another threading?

mipri mipri at minimaltype.com
Fri Dec 27 07:06:52 UTC 2019


On Friday, 27 December 2019 at 06:08:16 UTC, Marcone wrote:
> import std;
> import core.thread;
>
> auto threading(lazy void fun){ return 
> task!fun().executeInNewThread(); }
>
> void main(){
> 	threading(writeln("Hello World!"));
> }
>
>
> I want to create a function threading() to run some function in 
> other threading, but I get this error bellow. How can I get 
> success?
>
>
> Error: static function Programa.threading.Task!(fun).Task.impl 
> cannot access frame of function Programa.threading
> Error: template instance `Programa.threading.Task!(fun)` error 
> instantiating

This works:

import std;
import core.thread;

auto threading(void function() fun){ return 
task(fun).executeInNewThread(); }

void main(){
     writeln("Main: ", thisTid);
	threading({ writeln("Hello, ", thisTid); });
}



More information about the Digitalmars-d-learn mailing list