我们有一些代码允许以不同的尺寸请求图像,如果它不存在,它会以该尺寸创建并存储它。我们遇到的问题是图像不存在时的多个请求,并且它第一次尝试创建它。
虽然我们目前不在网络农场或分布在我们想要到达的多台机器上,但我们需要一种锁定该部分的方法,而只有一个线程/进程创建调整大小的图像,然后允许任何线程继续返回图像。
ASP.NET C# 中跨多个线程/机器锁定的最佳方法是什么(在网络场场景中)。我想唯一真正的选择是使用某种数据库表,我们可以将锁存储在图像文件名/id 上,但是其他线程是否必须继续调用数据库以查看锁是否已被释放?
如果有人对这种情况有任何经验,将不胜感激。我们将 ASP.NET MVC 4 与 C# 4.5 和 SQL Server 2008 一起使用。