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

时间:2014-09-23 14:19:20

标签: c# entity-framework async-await

实体框架具有相同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();
}

1 个答案:

答案 0 :(得分:5)

你不能 - 至少,不明智。同步和异步实现根本不同。你可以通过“同步异步”和“同步异步”来伪装,但这两种都是反模式,应该避免使用。