WebCamera(图像框)在使用Thread.Sleep时冻结

时间:2013-11-23 16:58:45

标签: c#

我正在为我的相机制作一个程序来拍照并将它们保存在隐藏的图像中供以后使用,相机在开始时工作正常但是在使用代码时:

    private void mainWinForm_PreviewKeyDown_1(object sender, PreviewKeyDownEventArgs e)
    {

        if (e.KeyCode == Keys.Space)
        {
            //1st Photo
            label1.Text = "3 (Get ready!)";
            label1.Refresh();
            Thread.Sleep(1500);

            label1.Text = "2 (To smile! :) )";
            label1.Refresh();
            Thread.Sleep(1500);

            label1.Text = "1 (Cheeese!)";
            label1.Refresh();
            Thread.Sleep(1500);

            label1.Text = "Taken!";
            label1.Refresh();
            Thread.Sleep(1500);
            imgCapture.Image = imgVideo.Image;

imgVideo.Image将冻结,我该如何使用?

1 个答案:

答案 0 :(得分:3)

您不应在UI线程中使用Thread.Sleep,因为它会使主线程休眠并且UI无响应。使用计时器。 Here是.net中定时器的绝佳比较。您的任务需要System.Windows.Forms.Timer,因为它也在UI线程中执行,您不会在设置属性和调用控件方法时遇到问题。