HttpRuntime.Cache позволяет вам указать обратный вызов истечения срока действия, но со статическим словарем вам придется ждать запроса для запуска цикла истечения срока действия ваших элементов кэша.

ы основныепрофи а такжеминусы за использование HttpRuntime Cache против использования простого статического поля?

Мне нужно хранить данные в рамках всего приложения ASP.NET.

HttpRuntime.Cache["MyData"] = someHashtable;

против

private static System.Collections.Hashtable _myData;
public static System.Collections.Hashtable MyData
{
    get
    {
        if (_myData == null)
        {
            _myData = new System.Collections.Hashtable();
            // TODO: Load data
        }
        return _myData;
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос