所以我有一个线程将不断抓取屏幕截图并将返回的位图Graphics.CopyFromScreen放入公共位图对象.这个想法是让多个其他线程使用这个位图,但仅用于读取目的,不写入位图.最初我只是尝试从它读取,但很快发现它锁定整个位图,以便它不能在别处使用.我的第二个选择是在每个需要使用公共位图的线程中创建一个新的临时位图tempBitMap = publicBitMap.这似乎抛出一些例外,我觉得可能还有更好的方法.我看到你可以锁定你需要在多个线程中使用的特定位/像素,然后在完成它们后释放它们,但这是否会阻止在锁定期间写入整个位图?或者它只是写入整个位图,除了那些锁定的位/像素.正在使用公共位图的方法只使用1个像素时间,这或许可以工作,提供公共位图可以写信给同时某些位/像素被锁定.
只是寻找最有效的解决方案,如果有人能就最有效的解决方案提出建议,我将非常感激,谢谢.
编辑:我使用BitMap.GetPixel()方法锁定位图.