我正在开发一个 .net 核心 Web 应用程序,我遇到了一个问题,我的 Usermanager 正在被处置,导致错误。
public async void DeleteInactiveUserData()
{
var dayAgo = DateTimeOffset.UtcNow.AddDays(-1);
var inactiveGuests = _userManager.Users.Where(u => u.Guest && u.LastLoginDate < dayAgo);
var yearAgo = DateTimeOffset.UtcNow.AddYears(-1);
var inactiveUsers = _userManager.Users.Where(u => !u.Guest && u.LastLoginDate < yearAgo);
var toBeDeletedUsers = inactiveGuests.Concat(inactiveUsers).ToList();
for (int i = toBeDeletedUsers.Count() - 1; i >= 0; i--)
{
var user = toBeDeletedUsers[i];
_logger.LogInformation("Deleting user " + user.UserName + " for inactivity.");
await _userManager.DeleteAsync(user); // Usermanager is disposed here
}
}
如何在使用 await 时停止服务被处理?