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

  • togvau

    senior tag

    válasz Szabesz #7812 üzenetére

    private static Stream ConvertToStream(string fileUrl)
    {
    try
    {
    if (DEBUG) Console.WriteLine("ConvertToStream: "+fileUrl);
    return client.GetStreamAsync(fileUrl).Result;
    }
    catch (Exception ex) {
    if (DEBUG) Console.WriteLine("down error: " + fileUrl);
    throw ex;
    }
    }

    client pedig private static readonly HttpClient client=new HttpClient();

    async awaitet nem akarnék használni, örülök, ha a lehető leggyorsabban rövidre zárom, és nem kell asyncesíteni még a GUI-t is :)

    Nem olyan nagyon új a C#, csak ez a nem túl jól működő letöltés dolog az új, meg ez a nagyon fura szálkezelés. Mint írtam java-ban, ott a threadpool, oda bepakolom a szálakat, aztán annyi, vagy ha nem akarom korlátozni a számukat simán thread.Run(), és az URL.openStream() mindenhogy működik, 1 szálon, és akárhányon is, teljesen párhuzamosan, sallang nélkül. Itt nem igazán akart, itt javasolta a valaki, hogy inkább a HttpClient-et használjam.

    Mint látható a kódból, egyszerre csak 1 fájlt tölt le, ami elvileg egyszerre 1 kérés. Vagy nem?

    #7813: nem minden esetben, de az esetek nagy részében igen, jobb a java. De ez nem meglepő, hiszen az egyik microsoft eredetű, a másik meg nem ;)

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