c# fire and forget 异步方法:在 .net 4 中实现 yield()

c# fire and forget async method: implement yield() in .net 4

我正在尝试实现一个 fire and forget async 方法,以进行日志记录以供审计。

我按照这个例子Async throw-away fire-and-forget with C#.NET

   public async Task MessageAsync(string message, DateTime date)
   {
      _logger.Info($"At {DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture)}: {message}");
      await Task.Yield(); //NOT POSSIBLE IN .NET 4.0
   }

但是我有使用.net framework 4.0的限制,无法使用

 await Task.Yield();

我理解这是确保该方法异步执行的唯一方法,来自 Microsoft:

You can use await Task.Yield(); in an asynchronous method to force the method to complete asynchronously.

我的问题是: 在 .net 4.0 中此实现的替代方案是什么?

根据@Evk 的消息,我试过这个:

Task MessageAsync(string message, DateTime date, CancellationToken token)
{
   var messageToLog =$"At {date.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture)}: {message}";
   Task.Factory.StartNew(() => _logger.Info(messageToLog), token);
}