Функция.prototype.bind () - это способ привязать целевую функцию к определенной области и необязательно определить объект this
в целевой функции.
someObj.addEventListener("click", some_function.bind(this), false);
Или для захвата некоторых лексических областей, например, в цикле:
someObj.addEventListener("click", some_function.bind(this, arg1, arg2), false);
Наконец, если параметр this
не нужен в целевой функции:
someObj.addEventListener("click", some_function.bind(null, arg1, arg2), false);
Это потому, что класс Gdi + Image не является потокобезопасным. Но вы можете избежать InvalidOperationException, используя блокировку каждый раз, когда вам нужен доступ к изображению, например, для рисования или получения размера изображения:
Image DummyImage;
// Paint
lock (DummyImage)
e.Graphics.DrawImage(DummyImage, 10, 10);
// Access Image properties
Size ImageSize;
lock (DummyImage)
ImageSize = DummyImage.Size;
Кстати, вызов не требуется, если вы будете использовать вышеуказанный шаблон.
Я думаю, что это проблема многопоточности Используйте золотое правило Windows и обновите панель в панели использования основного потока. Это должно преодолеть исключительную ситуацию с перекрестной резьбой