嗯,我设法使用Aforge运行网络摄像头 代码可以在我自己的答案中找到。 https://stackoverflow.com/a/12966093/613326如何在使用外部引用代码时执行多线程
现在我想做一些计算机视觉相关的stuf并返回一些结果到主窗体。该线程问题我已经在这个部分从代码:然而
void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
{ Bitmap video = (Bitmap)eventArgs.Frame.Clone();
pictureBox1.Image = video;
// count red colors
// not yet written
TextBox1.text = "demo error"; // >> i like to return a value to the main form
}
的问题是它做的视频帧在另一个线程 ,现在我不能从威胁的主要形式返回答案回来。 我没有写过Aforge,我只是把它链接起来,让它在我的表格上工作。 我不能改变aforge视频的工作方式。 我的意思是它从来没有做出什么东西回来多数民众赞成我喜欢做
有没有办法得到一个结果回来,就像在文本框中的字符串文本。 在代码运行的主窗体上?
我能够遵循线程的示例代码,但这是有点超过我的脑袋,因为我对Aforge的视频采集设计没有太大影响。
- 我一直在想,如果提出另一个线程只是为了更新文本框可能会起作用,但我并不确定,并想知道最后会创建到很多线程。造成很多内核切换负载
一些额外的信息上面的代码线程是用下面的这个按钮函数启动的。
private void button1_Click(object sender, EventArgs e)
{ FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[comboBox1.SelectedIndex].MonikerString);
FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
FinalVideo.Start();
}
我一直对此很困惑,而且我有点惊讶你是如何解决这个问题的,并且想知道你阅读了关于线程代码的什么样的材料,有没有一本你会推荐我的书?,我是一个初学者这个。我根据MSDN代码示例编写了其他一些代码,但是我无法在这里使用它,在这种情况下,我希望更好地理解它。 – user613326
@ user613326 - 我很抱歉让你失望,但我想我通过反复试验和搜索网络的方式学到了这一点。 – Enigmativity
:)那么你就像我一样,我也从中学习。 – user613326