如何轻松支持重复的异步/同步方法

本文关键字:异步 同步方法 何轻松 支持 | 更新日期: 2023-09-27 18:24:00

Entity框架具有相同IO绑定方法(如SaveChangesSaveChangesAsync)的同步和异步版本。如何在不"复制"代码的情况下创建最低限度地完成相同任务的新方法?

public bool SaveChanges()
{
    //Common code calling synchronous methods
    context.Find(...);
    //Synchronous Save
    return context.SaveChanges();
}
public async Task<bool> SaveChangesAsync()
{
    //Common code asynchronous methods
    await context.FindAsync(...);    
    //Asynchronous Save
    return await context.SaveChangesAsync();
}

如何轻松支持重复的异步/同步方法

你不能——至少,不是明智的。同步和异步实现有着根本的不同。您可以通过"syncoverasync"answers"asyncoversync"来伪造,但这两种都是反模式的,应该避免。