J'ai une petite application Web qui génère des fichiers PDF en tant que rapport. J'essaye de supprimer ces fichiers PDF générés après 10 secondes qu'ils sont générés. Ce que je veux faire est de lire un dossier avec des fichiers PDF toutes les 10 secondes, et supprimer tous les fichiers PDF dans ce dossier.Simulation du service Windows avec ASP.NET
J'ai lu ceci post of Easy Background Tasks in ASP.NET. Le code suivant est la version VB.
Protected Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
AddTask("DoStuff", 10)
End Sub
Private Sub AddTask(ByVal name As String, ByVal seconds As Integer)
OnCacheRemove = New CacheItemRemovedCallback(CacheItemRemoved)
HttpRuntime.Cache.Insert(name, seconds, Nothing, DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, _
OnCacheRemove)
End Sub
Public Sub CacheItemRemoved(ByVal k As String, ByVal v As Object, ByVal r As CacheItemRemovedReason)
' do stuff here if it matches our taskname, like WebRequest
DeletePDFilesInFoler()
' re-add our task so it recurs
AddTask(k, Convert.ToInt32(v))
End Sub
Mais je suis arrivé cette erreur
délégué 'System.Web.Caching.CacheItemRemovedCallback' nécessite une expression 'AddressOf' ou expression lambda comme seul argument à son constructeur.
Si ce code fonctionne, où devrais-je le mettre. Droit, maintenant je le mets dans la page maître. Comment faire pour sortir cette erreur?
Merci
votre CacheItemRemovedCallback a besoin d'un délégué (pointeur de fonction) à la fonction qu'il désigne. Pas seulement le nom de la fonction, comme c'est le cas maintenant. –