none
WebRequest a static metoda - dotaz na thread safe

    Dotaz

  • Dobrý den,
    mám takový začátečnický dotaz. Na ASPX stránce mám v Page_Load() zhruba následující volání:
    ===================
    StringBuilder sb = new StringBuilder();
    sb.Append(Dokument.VratData());
    ===================

    VratData() vypadá zjednodušeně následovně:
    ===================
    public class Dokument
    {
     public static string VratData()
     {
                    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("url...");
                    HttpWebResponse response = (HttpWebResponse)req.GetResponse());
                    return response.GetResponseStream().Read ....
    }
    ===================
    Kód funguje OK (tenhle je zjednodušený, bez ošetření chyb, dispose apod.). Nevím ale, jestli je to thread safe - co se stane, když bude VratData() volat v jeden okamžik více requestů. U webRequest se píše: "Any public static (Shared in Visual Basic) members of this type are thread safe". Jenže si lámu hlavu, co s tím provede to, že to mám ve statické metodě :-(.
    Kamil
    pondělí 6. dubna 2009 13:45

Odpovědi

  • Dobrý den,
    nebojte, ty thready vám nic nesdílejí, každé volání VratData() je autonomní a tak jste thread-safe.
    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    středa 8. dubna 2009 12:12
    Moderátor

Všechny reakce