Store them in the Application bag instead. i.e.:
HttpContext.Current.Application["mydata"] = myobject;
If you need to modify the data, you can lock the application state bag so synchronize access to it:
HttpContext.Current.Application.Lock();
HttpContext.Current.Application["mydata"] = myobject;
HttpContext.Current.Application.UnLock();
This way only one thread at a time can modify the value.
This was first published in July 2004