2010-05-19 2 views
1

Я использую объект EDM вместе с dataGridView и bindingSource. После добавления многих (1000) новых элементов к моему источнику привязки/сетке вызов контекста. Сохранение изменений с помощью нажатия кнопки приводит к зависанию пользовательского интерфейса в течение многих секунд. Я читал, что объекты EDM не являются потокобезопасными, поэтому я не думаю, что могу поставить эту задачу на фоне рабочего. У кого-нибудь есть какие-либо советы, чтобы я мог информировать пользователя о том, что работа выполняется (например, индикатор выполнения marquee и т. Д.)?Модель данных сущности. Пользовательский интерфейс «зависает» .SaveChanges

ответ

1

Я читал, что объекты EDM не являются потокобезопасными, поэтому я не думаю, что могу поставить эту задачу на фоне рабочего.

Уверен, что вы можете! Небезопасный поток означает, что небезопасно обращаться к экземплярам из нескольких потоков одновременно. Полностью безопасно использовать одного фонового работника для выполнения задания.

0

Если вы не хотите передавать пользовательский интерфейс, вам необходимо либо выполнить вызов в фоновом потоке, либо использовать асинхронную форму вызова. Если вы сделаете context.SaveChanges непосредственно из обработчика событий кнопки, он повесит UI