datagridview i problem z wydajnością aplikacji

0

Witam!

Witam jestem początkującym programistą w c# i mam pytanie do fachowców, którzy tkwią dłużej w technologi .net.

Czy jest jakiś sposób aby w kontrolce datagridview wyświetlać komórki porcjami (tylko to co widać w danym momencie na ekranie) a po przesunięciu suwakiem wczytywać resztę? W programie który tworzę mam potrzebę wyświetlania na ekranie około miliona komórek z tym że nie wszystkie są widoczne w jednym momencie. Na chwilę obecną program tworzy sobie tabelę po czym w całości ładuje ją do datagrida. Przy większej ilości zawiesza się Out of memory Exception.

Rozważałem jeszcze backgroundworkera ale nie bardzo wiem jak się za to zabrać ponieważ progs musiałby wczytywać komórka po komórce albo linia po lini. bo jakby backgroundworker to rysowal zamiast głównego wątku nic by nie zmieniło.

Generalnie chodzi o to żeby taka operacja nie zawieszała mi aplikacji w grę wchodzi ewentualne czekanie na wczytanie tego.

Pozdrawiam i proszę o pomoc.

W miarę możliwości prosiłbym o krótki przykład.

0

Ojej, problem stary jak sam DataGridView.

Przy dużych ilościach danych używa się trybu virtualnego.
Więcej informacji:
Performance Tuning in the Windows Forms DataGridView Control
Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET

Dodatkowo, może też przydać się ta informacja:
Horrible redraw performance of the DataGridView on one of my two screens

No i oczywiście google -> DataGridView performance for large data sets.

1 użytkowników online, w tym zalogowanych: 0, gości: 1