gpt4 book ai didi

c# - 对象当前正在别处使用 - 当 image.save

转载 作者:行者123 更新时间:2023-11-30 12:13:39 25 4
gpt4 key购买 nike

enter image description here使用以下代码,我们得到错误“对象当前正在别处使用”

private void CaptureDone(System.Drawing.Bitmap e)
{
try
{
this.pictureBox.Image = e;
if (isSending)
ThreadPool.QueueUserWorkItem(new WaitCallback(SendVideoBuffer), pictureBox.Image);
}
catch (Exception) { }
}

void SendVideoBuffer(object bufferIn)
{
TcpClient tcp = new TcpClient(ConfigurationSettings.AppSettings[0].ToString(), 6000);
NetworkStream ns = tcp.GetStream();
if (ns != null)
{
System.Drawing.Image buffer = (System.Drawing.Image)bufferIn;
buffer.Save(ns, System.Drawing.Imaging.ImageFormat.Jpeg);// error comes here
ns.Close();
tcp.Close();
}
}

请给点建议。

最佳答案

GDI+ 图像不是线程安全的,您需要获取对象上的锁。

void SendVideoBuffer(object bufferIn) 
{

var tcp = new TcpClient(ConfigurationSettings.AppSettings[0].ToString(), 6000);
var ns = tcp.GetStream();
if (ns != null)
{
var buffer = (System.Drawing.Image)bufferIn;
lock(buffer)
buffer.Save(ns, System.Drawing.Imaging.ImageFormat.Jpeg);
ns.Close();
tcp.Close();
}
}

关于c# - 对象当前正在别处使用 - 当 image.save,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11305074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com