这个会很有趣......
我见过很多asp.net缩略图生成教程/示例代码,但是当一个或多个用户在需要生成缩略图时访问同一页面时,没有人考虑动态生成缩略图时的并发访问问题。
一个简单的案例,我有一个带有属性图像(房屋等)的网站,图像存储在一个文件夹中,当有人第一次访问特定要约时,生成缩略图(用于图库),然后处理程序从中创建缩略图原始大图像,处理程序仅生成每个缩略图一次,然后在进一步的请求中使用生成的图像。
如果两个用户同时访问此页面会发生什么情况,处理程序可能在同一个文件或更多文件上运行两次,可能会出现并发问题,文件打开错误等等(需要打开文件以生成缩略图)
通常一个用户获取缩略图,其他用户获得一个没有图像的空白框,直到他们刷新页面(因为第一个用户触发缩略图创建)
所以问题是,如何避免这种情况?
答案 0 :(得分:2)
通常,如果您只是打开原始图像文件进行读取以生成缩略图,则同时访问它是没有问题的。多个用户可以同时打开同一个文件进行阅读。如果你同时开始写作就会出现问题。