Вы не говорите, насколько больше, чем 256x256 изображений на самом деле - изображения современных цифровых камер намного больше, чем это.
Дисковый ввод / вывод может быть очень медленным, и я бы посоветовал вам сначала получить приблизительное представление о том, сколько мегабайт данных вы на самом деле читаете.
Тогда вы можете решить, есть ли небольшая проблема 'Image.FromFile' или простая 'вот как медленно работает мой компьютер / диски / антивирусный сканер / сеть'.
Простым тестом базовой производительности файлового ввода-вывода было бы сделать File.ReadAllBytes () для каждого изображения вместо Image.FromFile () - это скажет вам, какая часть времени была потрачена на диск и что с обработкой изображений - я подозреваю, что вы обнаружите, что в основном это диск, и в этот момент ваш единственный шанс ускорить его может быть одним из методов получения миниатюр JFIF из файлов. Или, может быть, можно представить умные вещи с частичным чтением прогрессивных JPEG-файлов, хотя я не знаю, делает ли кто-нибудь это, и не являются ли ваши файлы прогрессивными (вероятно, нет).
Я действительно не знаю, как быстро вам нужно их загружать, но если проблема заключается в том, что во время загрузки файлов зависает интерактивное приложение, подумайте, как сделать это лучше для пользователя - возможно, используйте BackgroundWorker. чтобы загрузить их асинхронно, возможно, отсортируйте изображения по возрастанию размера файла и загрузите сначала маленькие для лучшей субъективной производительности.