Следующая строка - почему изображение не публикуется:
IMBuffer.Add(img.Clone());
Когда вы клонируете что-то, загруженное через ресурс (файл), файл все равно прикрепляется к клонированному объекту. Вам придется использовать FileStream, например, так:
FileStream fs = new FileStream("BufferImg", FileMode.Open, FileAccess.Read);
using (Image img = Image.FromStream(fs))
{
lock (IMBuffer)
{
IMBuffer.Add(img);
MessageBox.Show("worker filled: " + IMBuffer.Count.ToString() + ": " + pth);
}
}
fs.Close();
Это должно освободить файл после того, как вы загрузили его в буфер.