我有以下代码:
try
{
string fileName = imageQueue.Dequeue();
FileStream fileStream = File.Open(
fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
Bitmap bitmap = new Bitmap(fileStream);
Image picture = (Image)bitmap;
pb.Tag = fileName;
pb.Image = picture;
return true;
}
catch (Exception ex)
{
errorCount++;
//If another PC has this image open it will error
return false;
}
因为这个程序在两台PC上访问同一个文件夹以获取文件,所以当一个文件被打开时,它会抛出异常并继续移动到列表中的下一个文件。
当我同时在两台PC上打开应用程序时,第一台PC可以打开图像,但第二台无法打开。我在屏幕上同时显示了4张图像,但调试显示第二台PC在打开4个文件后需要10.5秒才能找到可以打开的文件。
为什么这么耗费时间,我该怎么做才能加快速度?
更新:我给它独占访问权限,因为我希望应用程序显示唯一的图像,所以PC1显示图像1、2、3、4,PC显示5、6、7、8,因为它无法访问1、2、3、4。我在完成使用后尽可能晚地释放文件流,以防止其他应用程序尝试打开它。