Я чрезвычайно новичок в C #, так что извините, если я не объясню это хорошо.
Я извлекаю изображения с камеры своего компьютера и, наряду с отображением их в PictureBox, кодирую их в формате JPEG и отправляю их в общий словарь. вот мой код:
void CurrentCamera_OnImageCaptured(object sender, CameraEventArgs e)
{
this.pictureBoxMe.Image = e.Image;
if (myName != "" && Form1.PicSent)
{
SendPic sendP = new SendPic((Image)e.Image.Clone());
new System.Threading.Thread(new System.Threading.ThreadStart(sendP.send)).Start();
}
}
public class SendPic
{
Image im;
public SendPic (Image im)
{
this.im = im;
}
public void send(){
Form1.PicSent = false;
var memoryStream = new MemoryStream();
im.Save(memoryStream, ImageFormat.Jpeg);
var byteArray = memoryStream.ToArray();
Form1.sd["/" + myName + "/video"] = byteArray;
memoryStream.Close();
Form1.PicSent = true;
}
}
проблема в том, что я получаю "Объект в настоящее время используется в другом месте". ошибка в строке: SendPic sendP = новый SendPic ((изображение) e.Image.Clone ());
основываясь на других сообщениях на форуме, которые я нашел, я уже изменил его, чтобы изображение передавалось в ветку, и чтобы это был клон. однако, я все еще получаю ту же ошибку (хотя она длится дольше до сбоя сейчас).
Я читал что-то о блокировке? Как я могу реализовать это в этом случае? или есть что-то еще, что мне нужно сделать?
спасибо.