gpt4 book ai didi

c# - 从 ISampleGrabber 获取字符串并以第一种形式更新文本框

转载 作者:行者123 更新时间:2023-11-30 17:02:10 39 4
gpt4 key购买 nike

我想通过另一个类来更新我的 UI,我已经尝试通过创建一个 form1 对象并使用一种方法来更新文本框来实现这一点。这会导致错误,通知我我的设备未正常运行。

那么基本上我如何使用我的 samplegrabber.cs 类更新我的 Form1 上的文本框?这个类被不断调用,但是我只需要使用 string 。

ISampleGrabber 类调用 SampleCB 方法,该方法包括:

public int SampleCB(double sampletime, IMediaSample sample)
{
if (sample == null)
{
return -1;
}
try
{
int length = sample.GetActualDataLength();
IntPtr buffer;
if (sample.GetPointer(out buffer) == 0 && length > 0)
{
Bitmap bitmapOfFrame = new Bitmap(width, height, stride, PixelFormat.Format24bppRgb, buffer);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
Marshal.ReleaseComObject(sample);
return 0;
}

form1 对象是在 if 语句中创建的,即使我创建对象(即使没有 f1.updateTextBox(id);)行也会发生错误。

在 Form1 中创建了“updateTextBox1”:

    public void updateTextBox1(string id)
{
textBox1.Text = id;
}

我收到的错误如下:

COMException(0x8007001F)A device attached to the system is not functioning properly.

最佳答案

SampleCB 在副线程上调用。您不应在此回调中执行任何与 UI 相关的操作,相反您可能希望将值存储在成员变量中并指示您需要在 UI 线程上继续,例如通过 posting yourself a message然后 handling it在正确的线程上。

关于c# - 从 ISampleGrabber 获取字符串并以第一种形式更新文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20178075/

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