Dave Kreskowiak
Конечно, это так. Вы, по сути, сделали этот код одним потоком, потому что вы блокируете доступ к каждому столбцу каждой отдельной строки. Только одна нить может пройти через замок одновременно.
Существует недостаточно информации, чтобы надежно рассказать вам, как обойти это или как переписать, чтобы избежать блокировки. Мы не знаем что newDt3
и table
вы знаете и не знаете, что должна делать ваша операция или ее бизнес-правила.
Member 8358871
таблица-это моя Itextsharp Pdfptable, в которую я добавляю ячейки.Мое требование заключается в экспорте большого объема данных в pdf около 80 000 записей.пожалуйста, предоставьте мне какое-нибудь решение
Dave Kreskowiak
Я не думаю, что у вас есть потоковое решение, доступное вам. Проблема не поддается многопоточному решению. Вы пытаетесь создать пользовательский интерфейс, визуальную таблицу, которая должна быть выполнена в определенном порядке. Проблемы рендеринга пользовательского интерфейса не поддаются резьбе по самой своей природе.
Обычно решение в других фреймворках пользовательского интерфейса состоит в том, чтобы показывать не 80 000 записей, а только одну страницу данных за раз. Но вы не можете этого сделать, так как создаете целый PDF-файл. Нет никакой возможности "пролистать" только видимые данные, так как все они видны одновременно.
Честно говоря, я бы не хотел просматривать сотни страниц PDF-файла, чтобы найти строки, которые я ищу. Просто нет никакого смысла выводить столько данных в Книгу. Даже при 100 записях на страницу вы смотрите на PDF-файл объемом около 800 страниц.
Я бы, вероятно, отложил написание этого PDF-файла для ночной операции, где работает служба, предназначенная для написания этого PDF-файла. Да, это все еще займет некоторое время, но утром он будет доступен для всех, кто в нем нуждается, без необходимости строить его по требованию.