これらのメソッドが非タスク返却である場合、適切な方法は、希望する順序で単純にそれらを配置することです。既定ではC#が順番に実行されるので、メソッド呼び出しの順序は実行される順序になります。
private void PerformGroupUpdate()
{
GetGroup();
InsertGroup();
Insert_EventGroups();
}
private void PerformProfileUpdate()
{
GetProfile();
InsertProfile();
Insert_GroupProfiles();
}
あなたはそれが並行してこれらのメソッドを実行して、必ずしも順序を保持しないでしょうParallel.Invoke
を使用した場合。したがって、上記の2つのメソッドを実行して、適切に実行することができます。さらに、それらを同時に実行したい場合は、Parallel.Invoke
を使用してこれらの2つの新しいメソッドを渡すことで実現できます。
Parallel.Invoke(() => PerformGroupUpdate(),() => PerformProfileUpdate());
これらの方法はasync
方法だった場合、あなたはTask.WhenAll
を使用することができます。
private async Task PerformGroupUpdateAsync()
{
await GetGroup();
await InsertGroup();
await Insert_EventGroups();
}
private async TaskPerformProfileUpdateAsync()
{
await GetProfile();
await InsertProfile();
await Insert_GroupProfiles();
}
private async Task InvokeAllAsync()
=> await Task.WhenAll(PerformGroupUpdateAsync(), TaskPerformProfileUpdateAsync());
各メソッドを順番に呼び出すだけのタスクを実行するだけではどうですか。 –
もし 'Task'を使っていたら、' .ContinueWith' APIを使うことができます。 –
私は@Matthew Watsonに同意します。なぜあなたはここでもスレッドを必要としますか?メソッドを1つずつ呼び出す場合は、順番に呼び出します。 – coolboyjules