WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Trådhantering i ASP.NET (https://www.wn.se/forum/showthread.php?t=1043449)

carlsund.se 2010-08-23 10:28

Trådhantering i ASP.NET
 
Hej! Någon som har koll på hur trådhanteringen i ASP.NET fungerar? Om jag startar en tråd från en postback på sidan, kommer systemet att vänta på att den exekverar klart innan den genererar sidan eller kan jag använda detta för att utföra tidsödande bakgrundsjobb (posta till Facebook-wall) utan att användaren behöver vänta på det?

digiArt 2010-08-23 12:45

En tråd som dras igång separat från huvudtråden snurrar på utan att användaren behöver vänta in ett resultat.

Däremot vet du inte huruvida den lyckades eller ej (vilket du säkert redan känner till).

StefanBergfeldt 2010-08-23 13:20

Precis som digiArt säger är det.
Men du vet väl att du med .NET 4 kan utnyttja flera processorkärnor med Parallels, hur enkelt som helst.

carlsund.se 2010-08-24 16:30

Perfekt, tack!

dAEk 2010-08-24 19:29

Citat:

Ursprungligen postat av StefanBergfeldt (Inlägg 20366436)
Precis som digiArt säger är det.
Men du vet väl att du med .NET 4 kan utnyttja flera processorkärnor med Parallels, hur enkelt som helst.

[s]Hur skulle det hjälpa i det här fallet?[/s]
Nevermind, tror att jag läste lite väl snabbt där. Antar att det är fler requests som skickas och inte en jättestor. :)


Generellt brukar det rekommenderas ganska starkt att inte skapa egna trådar. Iaf är det så inom Java EE och det borde vara lika i asp.net. Exakt varför kommer jag inte ihåg men jag har för mig att en av anledningarna är att applikationsservern inte har koll på dom trådarna så när den stängs ned eller recylas kan den inte avsluta på ett snyggt sätt utan trådarna dödas rakt upp och ned. Här lär det även bli strul med felhanteringen. Eftersom trådarna inte känns till av IIS:n kommer eventuella exceptions inte att kunna tas hand om. Rätta mig om jag har fel.

Det finns säkert många fler anledningar till varför man inte bör tråda på egen hand men det kanske någon som har lite mer erfarenhet kan skriva om?

robbanp 2010-08-25 21:38

Kör ASYNC
 
Om du vill köra asynkront, dvs. låta trådar vila i långa IO requests så kan du köra på detta sätt: http://msdn.microsoft.com/en-us/magazine/cc163725.aspx

carlsund.se 2010-08-28 11:55

men som jag förstår det så innebär det att man ändå måste vänta på ett svar innan sidan renderas, bara det att man kan göra saker samtidigt som man väntar eller? I mitt fall är jag ju inte intresserad av svaret, utan vill bara starta ett Facebookanrop och sedan låta det gå.

Kimpo 2010-08-28 12:12

Låter mer som ett AJAX jobb än att börja härja omkring med trådar, dvs ett asynkront anrop från klienten till servern. För detta behöver du inte trådhantering, utan bara lite trevlig JQuery/el nåt annat Javascript ramverk och en Web Service.

Nu vet jag inte exakt vad du tänker skicka till facebook API:t men här finns en liten tutorial för facebook connect:
http://net.tutsplus.com/tutorials/ot...riend-connect/


Alla tider är GMT +2. Klockan är nu 09:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson