我正在尝试实施一个火,忘记异步方法,以便进行审计。
我正在关注此示例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异步执行的唯一方法:
您可以使用await Task.Yield();在异步方法中强制执行 方法异步完成。
我的问题是: 在.net 4.0中这个实现的替代方法是什么?
答案 0 :(得分: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);
}