Добавить несколько Picturebox используя ThreadPool - PullRequest
0 голосов
/ 10 июня 2010

Я делаю морскую битву за университет. Я решил сделать это в C #. Моя доска - 20 х 20 мини (20 х 20) PictureBoxes. Проблема в том, что когда я загружаю плату, я получаю огромную задержку, чтобы нарисовать их все на панели, которая их содержит. Поэтому я подумал, чтобы ThreadPool использовал мой метод для ускорения создания и рисования полей picuteres.

Это правильный подход? Мне интересно, будет ли графическая задержка, даже если я запустлю 20 потоков для создания и установки картинных ящиков вместе.

(Я сейчас не прошёл код, потому что, возможно, ответ не зависит от него ... если нет, я прошёл дальше:)

Извините за плохой английский,

Спасибо, ребята!

Ответы [ 3 ]

0 голосов
/ 10 июня 2010

Взгляните на 2 примера проектов из codeproject:

0 голосов
/ 11 июня 2010
  1. Используйте одну нить.
  2. Определенно приостанавливайте обновления пользовательского интерфейса при создании пользовательского интерфейса, затем возобновляйте обновления.

Возможно, создайте один растровый рисунок в памяти (вы можете нарисовать маленькие биты на графическом объекте, который представляет растровое изображение)затем отобразите одно растровое изображение.(с помощью этого метода посмотрите также на двойную буферизацию)

0 голосов
/ 10 июня 2010

В принципе это было бы не очень хорошо, потому что вы не должны изменять интерфейс пользователя из других потоков, кроме основного. Это может привести к неправильному поведению. Вы можете проверить код, в который вы загружаете картинки, возможно, его можно улучшить или просто подумать о другой реализации.

...