hoppas att det finns någon som är bra på timers, jag har ingen aning om hur det fungerar men jag skulle vilja ha en timer som skriver in ett värde i databasen varje minut. Tyvärr går det inte att göra i asp, eftersom koden enbart genereras när scriptet körs. Men du kan använda dig av javascript, men det är jag för dålig på för att kunna hjälpa till med tyvärr. Fråga: Tocker, Windows Services är absolut ett bra sätt att lösa uppgiften på. Men ibland är det overkill och speciellt om du är på ett webbhotell blir det svårt att driftsätta din Windows Service. timer med asp.net och c#
Jag vet hur man skriver till databasen men hur man gör en timer som gör något varje minut har jag ingen aning om hur man gör..
needing help
// TockerSv: timer med asp.net och c#
Sv: timer med asp.net och c#
Skall det vara nånting som skriver in nånting för varje användare eller generellt varje minut?
Du borde kunna skriva ett bibliotek som utför saker i en annan tråd. dock vet jag inte hur det fungerar med multitrådade applikationer tillsammans med asp.netSv: timer med asp.net och c#
Som andré säger så får du skriva en window service som du installerar på din webserver. Anledningen till detta är att du kan inte använda dig av en timer på en asp.net sida pga. av att koden för sidan körs bara när ett anrop kommer in till sidan. Sidan kör sen igenom lite kod och skickar tillbaka ett svar till klienten (browsern) varpå server koden slutar köra.
Så du kan alltså inte använda dig av en timer eftersom den skulle aldrig köras. Med en window service så har du tt fristående program som körs i bakgrunden av operativ systemet. Denna kör helt fritt från asp.net sidan och kan på så sätt göra periodiska uppdateringar.
Det finns även stöd för att kommunicera med window services från annan kod. Du skulle då kunna göra konfigurations ändringar från din asp.net sida för att förändra window servicens beteende (t.ex att ändra uppdaterings intervallet).
Hur du skiver en window service och hur du kommunicerar med denna står beskrivet i MSDN dokumentationen och täcker i princip allt du behöver för att rulla ut detta projektet.
//AndreasSv: timer med asp.net och c#
Ett litet trick du kan göra annars är att kapsla in din timer i en klass. Från den här klassen kan du skapa ett objekt som du lägger i en Applikationsvariabel.
Applikationsobjektet hålls levande i den "Application domain" som din ASP.NET applikation fått tilldelat sig och därför kommer också ditt timerobjekt att fortsätta leva.
Dock ska man veta att en timer tar sin tråd från I/O trådpoolen, precis som alla dina http-anrop från klienterna gör. I/O trådpoolen har ett max värde på 25 trådar, det gör att när du nu skapar en timer så kommer du ha 24 trådar som kan hantera dina http-anrop. Du kan heller aldrig vara riktigt säker på att din timer kör, om IISn startat om och ingen gjort ett http-anrop så har inga applikationsvariabler skapats.
Dessutom måste du om du vill arbeta med ditt objekt från dina http-anrop, vara säker på att alla anrop till det är trådsäkra.
Jag har lagt upp ett exempel på: http://www.cshrp.net/content/code/webtimer.zip