Sql Server CE поддерживает многопоточность? - PullRequest
0 голосов
/ 05 января 2011

Мне нужно знать, поддерживает ли SQL Server CE многопоточность (используя одно соединение).

Поэтому, если я создаю соединение SQL Server CE и затем использую это соединение в двух разных потоках, чтобы вызвать обновление / insert /удалить к соединению, SQL Server CE будет «в порядке» с этим, или он иногда задыхается?

(Я получаю ошибку прерывистой записи, и я не уверен, что это из-за многопоточного доступа или если этоэто что-то еще.)

Ответы [ 2 ]

2 голосов
/ 06 января 2011

Вы должны создать объект соединения для потока, это не безопасно для многопоточности - http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceconnection(v=VS.100).aspx

1 голос
/ 02 февраля 2011

Да, sqlserverce не является многопоточным.

Лучший и самый ленивый способ - каждый вызов вставки, задача обновления, блокировка объекта, выполнение необходимой операции, а затем снятие этой блокировки.

У меня был класс, который делает некоторые вставки (ввод GPS-координаты в БД) в зависимости от таймера, события (pda, подключенного к линии электропередачи переменного тока) и другого таймера для отправки этих данных в веб-службу через gprs. Конечный результат: сбой sql, причина, по которой он не является многопоточным.

После некоторого исследования нашел эту статью C Многопоточность Обмен данными между потоками , что помогло в моем случае.

...