如何解决如何取消任务但让她完成块?
我有一个程序(.NET Core C#)从数据库中删除数据,对于每个帐户 - 删除与该帐户相关的所有数据。 我想添加一个选项来停止程序,但完成程序所在人员的删除,然后停止并退出。 我想做这样的事情,当我按任意键时,程序将完成打印 10 个条目,然后停止并退出。例如:
public static void Main(string[] args)
{
// ???
}
static void Console_CancelKeyPress(object sender,ConsoleCancelEventArgs e)
{
Console.WriteLine("Shutting down...");
// Cleanup here
}
private static async Task MyTask(CancellationToken cancellationToken)
{
Print(cancellationToken);
}
public static void Print(CancellationToken cancellationToken)
{
while (cancellationToken.IsCancellationRequested!)
{
for (int i = 1; i < 10; i++)
{
Console.WriteLine(i);
}
}
}
我想知道你的任何想法,
谢谢!
解决方法
只是不要将取消令牌传递给 dbContext。当您可以停止您的程序时,请手动检查取消令牌。
private static async Task DeleteAllAccounts(CancellationToken cancellationToken)
{
var accounts = await GetAccountsAsync(cancellationToken);
foreach (var account in accounts)
{
await DeleteAccountAsync(account,CancellationToken.None);
if (cancellationToken.IsCancellationRequested)
break;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。