创建函数的多个线程

时间:2014-02-21 11:49:46

标签: c# multithreading thread-safety emgucv

我正在开展一个项目,我坚持一个点,我必须并行运行两个方法。

在功能1中

在我的应用程序中我正在做的是从IP摄像头抓取图像并将该图像存储到一个文件夹中。 此功能用于连续传输相机。

为此,您可以参考我提出的问题IP Camera stops streaming

在功能2中

我将从 Function2 转储图片的路径中选择图片。

我在这里做其他一些操作,如:

  1. 保存从IP摄像机捕获的图像
  2. 检测图像中的面部
  3. 在图像上绘制面部标记
  4. 某些基于人脸检测结果的数据库
  5. 删除图片文件
  6. 功能2 功能1 需要更多的执行时间。

    所以为了这个目的,在google上搜索后我知道我可以通过多线程来做到这一点。

    所以,我对此有点困惑,因为我是c#的新手,我对多线程并不是很了解。

    那么,任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

你确实需要使用多线程,在你的情况下它应该不会太困难。

您需要添加“使用System.Threading;”任何涉及线程的文件的开头。

public void Function1()
{
    //Do camera stuff

    Image image = MagicalCameraStuff();

    //Create a thread that the processing will occur on
    Thread process = new Thread(() => Function2(image));
    //Start the thread
    process.Start();
}

public void Function2(Image i)
{
    //Do some processing without blocking the main thread
}

有关线程的更多信息: http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx