smudger Novice
16. april 2018 - 18:53 Der er 1 løsning

c# await af async lambda

Jeg har foelgende kode:

try
{
    await Task.Factory.StartNew(async () =>
    {
        int i = MyClass.Calc(x, y); // tager lang tid
        int k = await ThirdPartyClass.Calc(i, w); // tager lang tid
        MyClass2.Show(k)
    });
}
catch(Exception ex)
{
      // Jeg kommer aldrig her ned hvis der bliver smidt en exception.
}

Problemet er at de exceptions der bliver smidt, ikke bliver fanget af catch blokken. Hvis jeg fjerner async, saa fanger jeg exceptions, men saa kan jeg ikke kalde ThirdPartyClass.Calc.

Hvordan kan dette skrives anderledes?
smudger Novice
16. april 2018 - 19:16 #1
Denne loesning virker:

try
{
    int I, k;

    await Task.Factory.StartNew(async () =>
    {
        i = MyClass.Calc(x, y); // tager lang tid
    });

    k = await ThirdPartyClass.Calc(i, w); // tager lang tid

    await Task.Factory.StartNew(async () =>
    {
        MyClass2.Show(k)
    });
}
catch(Exception ex)
{

}
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Til Computerworlds Premium-medlemmer: Download eksklusiv single og lydbog om det store Mærsk-angreb - fortalt time for time
Som Premium-læser skal du forkæles. Derfor har vi på Computerworld gjort lidt ekstra ud af det og lavet en sommerferiegave til dig. Download den her.
Computerworld
Margrethe Vestager på vej med rekordbøde til Google for misbrug af Android
Margrethe Vestager lægger op til endnu et slagsmål med Google. Denne gang kan udfaldet blive den hidtil største bøde til den internationale tech-gigant.
CIO
Henrik Jeberg om at arbejde i Silicon Valley: "Er du dygtig nok får du tilbud der får en til at falde ned af stolen."
Henrik Jeberg bor i San Francisco og er direktør i Hampleton Partners, der rådgiver om opkøb med særligt fokus på teknologi. Hør ham fortælle om forskellen på Danmark og Silicon Valley - og om nogle af de vilde forhold der hersker i verdens ubestridte tech-hovedstad.
Job & Karriere
KMD opsagde tryghedsaftaler med medarbejderne få måneder før 300 medarbejdere blev outsourcet til IBM
KMD har i løbet af foråret opsagt to såkaldte tryghedsaftaler med en del af selskabets medarbejdere. Når aftalerne stopper ved udgangen af 2018, er de pågældende medarbejdere ikke længere berettiget til særlig godtgørelse. Det kan få konsekvenser, hvis IBM som forventet skærer i antallet af de 300 KMD-medarbejdere, som selskabet overtager.