In Go you always need a keyword (go something) to start a co-routine, well, in C# you do exactly the same with Task.Run(something), while it also supports async/await.
Additionally, LINQ can make use of background execution via PLINQ, Dataflow Tasks allow to use a DSL to orchestrate executions that happen in the background, the early BeginInvoke()/EndInvoke() can make use of threads or not, and for all of that, we can also write our own scheduling algorithm and give it to the runtime scheduler.
So yeah, it depends how rich the language runtime happens to be, even if async/await are also supported.
I will not reply again. Yes you know something, and your knowledge is right. You saw my question and saw some keyword matched you knowledge, and you spoke out your knowledge. I'm not saying your wrong, but we are talking about different thing.
In Go you always need a keyword (go something) to start a co-routine, well, in C# you do exactly the same with Task.Run(something), while it also supports async/await.
Additionally, LINQ can make use of background execution via PLINQ, Dataflow Tasks allow to use a DSL to orchestrate executions that happen in the background, the early BeginInvoke()/EndInvoke() can make use of threads or not, and for all of that, we can also write our own scheduling algorithm and give it to the runtime scheduler.
So yeah, it depends how rich the language runtime happens to be, even if async/await are also supported.