Accessing the ASP.NET Cache from a Separate Thread

2019-02-21 08:01发布

Normally i have a static class that reads and writes to HttpContext.Current.Cache

However since adding threading to my project, the threads all get null reference exceptions when trying to retrieve this object.

Is there any other way i can access it, workarounds or another cache i can use?

2条回答
地球回转人心会变
2楼-- · 2019-02-21 08:22

If your project is an ASP.NET project, then it was multithreaded even before you "added threading".

Check to see if HttpContext.Current is non-null before referencing HttpContext.Current.Cache.

Also, please post the complete exception you're receiving, and show us the code that references the cache.

查看更多
爷的心禁止访问
3楼-- · 2019-02-21 08:30

The System.Web.Cache object itself is thread safe.

The issue is how to obtain a reference to it in a way that works throughout your application. HttpContext.Current returns null unless it is called on a thread that is handling an ASP.NET request. An alternative way to get the Cache is through the static property System.Web.HttpRuntime.Cache. This will avoid the problems with the HttpContext.

查看更多
登录 后发表回答