Dans Asp.Net j'utilise beaucoup de statique des méthodes pour les travaux à faire. Si il s'agit tout simplement d'un travail où je dois pas de réponse ou de qualité, je fais quelque chose de simple comme ci-dessous. Comme vous pouvez le voir, j'ai le choix de demander soit l'ResizeImages ou ResizeImagesAsync selon si je veux attendre qu'il ait fini ou pas
Explication du Code: - je utiliser http://imageresizing.net/ pour recadrer/redimensionner les images et la méthode SaveBlobPng est de stocker les images d'Azur (cloud), mais comme cela n'est pas pertinent pour cette démonstration, je ne comprend pas ce code. Ses un bon exemple de tâches consommatrices de temps si
private delegate void ResizeImagesDelegate(string tempuri, Dictionary<string, string> versions);
private static void ResizeImagesAsync(string tempuri, Dictionary<string, string> versions)
{
ResizeImagesDelegate worker = new ResizeImagesDelegate(ResizeImages);
worker.BeginInvoke(tempuri, versions, deletetemp, null, null);
}
private static void ResizeImages(string tempuri, Dictionary<string, string> versions)
{
//the job, whatever it might be
foreach (var item in versions)
{
var image = ImageBuilder.Current.Build(tempuri, new ResizeSettings(item.Value));
SaveBlobPng(image, item.Key);
image.Dispose();
}
}
Ou aller pour le filetage de sorte que vous n'avez pas à s'embêter avec les Délégués
private static void ResizeImagesAsync(string tempuri, Dictionary<string, string> versions)
{
Thread t = new Thread (() => ResizeImages(tempuri, versions, null, null));
t.Start();
}