using System.Threading.Tasks;
public delegate Task<string> GetterDelgate();
public GetterDelgate OnGetPlayerData;
async Task<string> DbGetAsync() {
await Task.Delay(TimeSpan.FromSeconds(1));
async Task<string> GetPlayerDataAsync() {
string result = await OnGetPlayerData.Invoke();
public static async Task Main()
Console.WriteLine("start");
Program program = new Program();
program.OnGetPlayerData = program.DbGetAsync;
var result = await program.GetPlayerDataAsync();
Console.WriteLine(result);