Вызов на стороне сервера и приоритет потока
От: HowardLovekraft  
Дата: 09.07.09 11:36
Оценка:
Есть ремоутинг-сервер.

Один из его методов может выполнять "тяжелую" работу, в процессе которой отжирает существенное количество оперативки и процессорного времени. Соответственно, пока метод выполняется, остальным процессам на сервере приходится довольно туго.

Нужно избавиться от этого эффекта.
С жором памяти разберусь — там все очевидно. Проблема в изменении приоритета потока, в котором выполняется метод. Насколько я понимаю, ремоутинг использует потоки из пула, а в документации к пулу указано, что если поток должен иметь определенный приоритет, то пул использовать не стОит.

Решение "в лоб" — в ремоутинг-методе создавать поток, назначать ему приоритет, в его контексте выполнять всю работу и затем забирать результат.

Какие варианты могут быть использованы еще? Судя по всему, такая же проблема будет характерна и для WCF-сервисов. Есть ли для них какое-то более специфическое и более красивое решение?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.