首页 > 解决方案 > C# Windows 窗体 - 正常应用过滤器到图像但使用线程得到 NullReferenceException

问题描述

我正在对多个图像应用过滤器,效果很好,但速度很慢。

(注意:图像、过滤器、filter_size、div 已经加载和分配)

for (int i = 0; i < 5; i++)
    out[i] = MyFiltering((Bitmap)images[i], filter, filter_size, div);

因此,我尝试为每个图像过滤使用一个线程来加快速度,如下所示:

for (int i = 0; i < 5; i++)
{
    FilterThread[i] = new Thread(() => {out[i] = MyFiltering((Bitmap)images[i], filter, filter_size, div)}
    FilterThread[i].IsBackground = true;
    FilterThread[i].Start();
}

我尝试了不同的方法(例如,ThreadPool、Task.Factory.StartNew),但总是在 MyFiltering 中为输入 img(即 images[i])获取 NullReferenceException,这绝对不应该为 NULL!

有人有想法吗?

标签: c#multithreadingwinformsfilteringnullreferenceexception

解决方案


推荐阅读