Hirdetés

Új hozzászólás Aktív témák

  • moseras

    tag

    Sziasztok!

    MySQL-t használok Entity FrameWork 6-al. Működik, kivétel az async/await lehetőség, amit az EF6 elvileg tud.

    Kód:

    public void I2(List<data> dataList)
    {
    Debug.Print("I2 előtt");
    InsertAsync(dataList);
    Debug.Print("I2 után");
    }

    public async void InsertAsync(List<data> dataList)
    {
    using (var ctx = new adatgyujtesEntities())
    {
    ctx.Configuration.AutoDetectChangesEnabled = false;
    ctx.Configuration.ValidateOnSaveEnabled = false;

    foreach (var item in dataList)
    {
    ctx.data.Add(item);
    }

    Debug.Print("await előtt");
    await ctx.SaveChangesAsync();
    //await Task.Delay(4000);
    Debug.Print("await után");
    }
    }

    Ha az I2-t meghívom, akkor ezt kapom:

    I2 előtt
    await előtt
    await után
    I2 után

    Ha az await ctx.SaveChangesAsync(); sort kikommentezem, és helyette beteszem az await Task.Delay(4000);-t, akkor pedig ezt:

    I2 előtt
    await előtt
    I2 után
    await után

    Tehát mint ha a SaveChangesAsync szinkron működne ? Vagy valamit félreértek ?

    És még valami: a UI is akad rendesen, a SaveChangesAsync közben sem mozgatni, sem méretezni nem lehet az ablakot, de a Task.Delay közben működik a mozgatás/méretezés.

    Köszi!

    Imi.

    [ Szerkesztve ]

Új hozzászólás Aktív témák