2014-02-24 90 views
0

我有一个问题,我怎样才能让循环运行一段代码无限的时间?基本上我有一个代码的和平,它使用随机函数来创建一个像素化的位图图像,并将其显示到我的图像框到用户界面。 但是,当我需要执行那段代码以便同时生成图像并不断地为了制作这些图像的视频剪辑而彼此播放时,我遇到了困难。我使用了“while(true)”循环,但它并没有在我的屏幕上显示任何内容,每次运行代码时我的程序都会崩溃。 任何人都可以告诉我如何使一个非常平滑的循环以毫秒为间隔执行我的代码?我怎样才能让一个循环生成图像无限的时间来制作一个影片剪辑?

While (true) 
{ 
    foreach (Point p in blackPixels) 
    { 
     if (r.NextDouble() < 0.20) 
     { 
      bmp.SetPixel(p.X, p.Y, Color.Black); 
     } 
     else 
     { 
      bmp.SetPixel(p.X, p.Y, Color.White); 
     } 
    } 

    pictureBox1.Image = bmp; 
} 
+0

在你的算法中使用递归。但即使这样也有一个结局标准(这不是无限的)。你也需要更多地考虑递归的内存管理。 –

+0

您在任何时候都没有更新您的用户界面。您的代码正在生成新图像,但从不更新前端。 –

+0

尼尔奈特,你能解释清楚你说的是什么意思吗?我正在使用“pictureBox1.Image = bmp;”每一次,所以它应该更新我的输出! – CowBoy

回答

0

如果您在UI线程上运行此代码,则不会显示任何内容,因为while循环会阻止该线程。您需要将代码放置在单独的线程或任务中。

+0

是否有任何实际解决方案? – CowBoy

相关问题