Задать вопрос

Как правильно организовать многопоточность asp.net?

Есть код, функция которая меняет разрешение картинки.
public void NewImage(int needHeight, int needWidth, string oldFile, string newFile)
        {
            double newWidth, newHeight;
            double UVR;
            Image FullSizeImage = Image.FromFile(oldFile);
            FullSizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
            FullSizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);

            if (FullSizeImage.Width > FullSizeImage.Height)
            {
                UVR = FullSizeImage.Width / needWidth;
                newWidth = needWidth;
                newHeight = FullSizeImage.Height / UVR;
            }
            else
            {
                if (FullSizeImage.Height > FullSizeImage.Width)
                {
                    UVR = FullSizeImage.Height / needHeight;
                    newHeight = needHeight;
                    newWidth = FullSizeImage.Width / UVR;
                }
                else
                {
                    newHeight = needHeight;
                    newWidth = needWidth;
                }
            }

            Image NewImage = FullSizeImage.GetThumbnailImage(Convert.ToInt32(newWidth), Convert.ToInt32(newHeight), null, IntPtr.Zero);
            FullSizeImage.Dispose();
            NewImage.Save(newFile);

        }


Возникает ситуация, если картинка будет очень большая, то выполнение будет не мгновенно. Меня интересует: подвиснет ли весь сервер на время выполнения этого кода?
То бишь, необходимо ли мне самому написать выделение второго потока?
  • Вопрос задан
  • 10713 просмотров
Подписаться 7 Оценить Комментировать
Решения вопроса 2
@Free_ze
Пишу комментарии в комментарии, а не в ответы
Если я не ошибаюсь, то каждый запрос и так обрабатывается в отдельном потоке.
Ответ написан
Комментировать
На сервере имеется пул потоков, при получении запроса от клиента, пул выделяет поток в котором и будет выполняться ваша трансформация. Другой запрос запустит на выполнение новый поток и так далее.. т.е. как писали выше, "каждый запрос отрабатывается в отдельном потоке".
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы