You can break it down into several parts:
async () => { await SomeClass.Initiate(new Configuration()); }
It is a lambda expression that defines a method asyncthat just expects another method. Then this lambda is passed to Task.Run:
Task.Run(async () => { await SomeClass.Initiate(new Configuration()); })
Task.Run . , async lambda . Task.Run a Task, async . Task.Run Task.Wait:
Task.Run(async () => { await SomeClass.Initiate(new Configuration()); }).Wait();
, .
, , :
static async Task AnonymousMethodAsync()
{
await SomeClass.Initiate(new Configuration());
}
static void Main(string[] args)
{
var task = Task.Run(() => AnonymousMethodAsync());
task.Wait();
while (true) ;
}