webForumDet fria alternativet

Bild ifrån webservice?

.NET

5 svar · 516 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Om jag vill "skicka ut" denna bild ifrån en webservice hur gör jag då?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim NewTh As New Threading.Thread(AddressOf DoIt)
        NewTh.SetApartmentState(Threading.ApartmentState.STA)
        NewTh.Start()
        While NewTh.ThreadState = Threading.ThreadState.Running
        End While
    End Sub

    Sub DoIt()
        Dim url As String = Request.QueryString("url")
        Dim b As Byte() = Nothing
        Dim s As System.IO.Stream = Nothing
        Dim x As System.Drawing.Bitmap = New GetImage(url, 1024, 768, 240, 180).GetBitmap()
        Response.ContentType = "image/jpeg"
        Response.Expires = 30
        x.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    End Sub
Medlem sedan juni 20019 024 inlägg
#2

Gör om den till en Base64-sträng och låt användaren av webbtjänsten omvandla den till en bild igen.

Medlem sedan okt. 20041 556 inlägg
#3

Men hur kör man trådningen i en webservice, det finns ju inget load-event i en webservice. Kan du visa lite pseudokod?

Medlem sedan maj 20012 812 inlägg
#4

Travoni skrev:

Men hur kör man trådningen i en webservice, det finns ju inget load-event i en webservice. Kan du visa lite pseudokod?

Varför vill du tråda din webservice om det ända du skall göra är att hämta bilden och sedan skicka tillbaka den till mottagaren...

- M

Medlem sedan juni 20008 205 inlägg
#5

... och om du kan svara på Gladhs fråga, så för Guds skull, gör inte en busy wait på att tråden ska köras klart. Byt ut:

        While NewTh.ThreadState = Threading.ThreadState.Running
        End While

mot:

NewTh.Join

... så blockar Join tills tråden du skapat kört klart.

Dock känns det, som sagt, ganska meningslöst att använda en tråd på det här sättet eftersom den ändå blockar Page_Load tills tråden är klar. Bättre att pumpa ut bilden direkt utan att gå igenom all overhead med att skapa en ny tråd.

Medlem sedan okt. 20041 556 inlägg
#6

...join verkar ju dessutom få det hela att gå en aning snabbare. :)
R/
Ok, tack.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)