Мы разрабатываем приложение WPF, которое одновременно откроет несколько отчетов (как и в случае с типичным приложением MDI, таким как Excel или Visual Studio). Хотя можно иметь контекст данных для тех отчетов, которые запускаются в нескольких рабочих потоках, мы по-прежнему находим, что если количество открытых отчетов действительно велико, даже рендеринг этих отчетов (в основном UserControl размещен либо в среде MDI, либо только в область сетки в главном представлении) все равно сделает приложение менее отзывчивым.
Итак, моя идея состоит в том, чтобы по крайней мере иметь несколько областей в основном пользовательском интерфейсе, каждый из которых будет управлять своим пользователем в разных потоках пользовательского интерфейса. Опять же, представьте себе типичный вид в визуальной студии, за исключением меню, в нем есть основная область текстового редактора, боковая область, на которой размещаются, например, explorer, и нижняя область, где размещаются, например, список ошибок и вывод. Поэтому я хочу, чтобы эти три области выполнялись в трех потоках пользовательского интерфейса (но, естественно, они размещались в одном MainView, что часть, о которой я не уверен).
Я спрашиваю, потому что знаю, что в разных потоках пользовательского интерфейса может быть несколько (верхнего уровня) окон. Но кто-то сказал, что это не относится к пользовательским элементам управления. Это правда? Если да, то каково типичное решение для моего сценария, т.е. Количество открытых UserControl действительно велико, и многие из этих UserControl в режиме реального времени, поэтому их рендеринг требует огромных ресурсов? Спасибо!