У меня есть видеопроигрыватель, написанный на Emgu (оболочка .net для OpenCV), и я фиксирую кадры и выполняю некоторые операции с определенными кадрами. Что касается функциональности, я позволил пользователю сделать снимок потокового видео и выделить фрагменты снимка в другой форме.
Однако, поскольку проигрыватель видео воспроизводится под изображением в дочерней форме, он также обновляется по мере того, как пользователь рисует в форме. Это нежелательно. Я почти уверен, что это как-то связано с моими блокирующими и разблокирующими вещами, и я новичок в этом деле.
Есть идеи, где я иду не так? Я бы подумал, что lock (bmpFrame) предотвратит любые обновления, но это не так:
private void btnTag_Click(object sender, EventArgs e)
{
if (_video != null && _video.CurrentFrame != null)
{
try
{
using (Bitmap bmpFrame = (Bitmap)_video.CurrentFrame.Bitmap)
{
lock (bmpFrame)
{
TagForm f = new TagForm(bmpFrame);
f.Show();
}
}
}
catch { };
}
}