Вот что я пытаюсь сделать: Поток B загрузит некоторые изображения и сохранит их в общем ресурсе: Static ArrayList IMBuffer;Поток A возьмет изображение из IMBuffer и что-то с ним сделает.Вот что я получил:
Тема B:
// сделать что-то
System.Net.WebClient myWebClient = new System.Net.WebClient();
try
{ myWebClient.DownloadFile(pth, "BufferImg"); }
catch
{ // some stuff }
// add new dled image to IMBuffer
fs = new FileStream("BufferImg", FileMode.Open, FileAccess.Read);
Image img = Image.FromStream(fs);
lock (IMBuffer)
{ IMBuffer.Add(img); }
img.Dispose();
lock (IMRequest) { IMRequest.RemoveAt(0); }
myWebClient.Dispose();
//fs.Dispose();
// File.Delete("BufferImg");
// сделать что-то еще
Тема A:
// do something
Image nextImg;
lock (IMBuffer)
{
nextImg = (Image)IMBuffer[0];
nextImg.Save(DLedIM);
}
// do something else
и вот проблема, к которой я прибегаю;поскольку изображения в IMBuffer открывались с использованием файлового потока, при удалении потока строка: nextImg.Save (DLedIM);вызывает ошибку «файл был использован другим процессом».Однако, если fs.Dispose ();строка закомментирована, затем программа блокирует «BufferImg», в результате она не сможет загрузить изображение в «BufferImg» после первого раза.Что я должен сделать, чтобы решить эту проблему?Или есть более простой способ выполнить то, что я пытаюсь сделать?