![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Karrde |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 11.11.2006 Репутация: нет Всего: нет |
Есть такая задача. По ивентам с разных библиотек надо писать в базу данных. База на sqlite(т.е. не поддерживает одновременное подключение нескольких потоков). Как сделать пул, чтобы одновременно выполнялся только один из потоков(чтобы случайно к базе одновременно не обратилось несколько потоков)...
Пытался сделать через ThreadPool - но там нельзя ставить одновременно выполняющееся кол-во потоков меньше, чем ядер в процессоре. Или просто сделать через Mutex, поставленном на выполнении самого запроса к базе? Заранее благодарю |
|||
|
||||
jonie |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
да ладно? и давно это с ней ?
вообще Barrier использовать можно в .net4 или WaitHandle в .net3 и ранее -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
Fitc |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.1.2010 Репутация: 3 Всего: 4 |
а как насчет firebird, ее вроде можно таскать с приложением и многопоточность она поддерживает насколько я знаю
Добавлено через 5 минут и 40 секунд хотя пишут, что мультипоочный режим поддерживается на sqllite http://www.sqlite.org/threadsafe.html |
|||
|
||||
Karrde |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 11.11.2006 Репутация: нет Всего: нет |
Насколько я знаю, firebird, которую можно таскать с собой - это firebird embedded. А у неё такое же ограничение на одновременное количество записей в базу(кстати, читать из базы могут несколько потоков. но это и в sqlite)
Это сообщение отредактировал(а) Karrde - 25.10.2011, 14:13 |
||||||
|
|||||||
Fitc |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.1.2010 Репутация: 3 Всего: 4 |
Да я имел ввиду именно firebird embedded и подозревал, что она в имеет некоторые ограничения
![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
http://www.sqlite.org/cvstrac/wiki?p=MultiThreading почитайте. Вообще (если уж вам так хочется) вам гуглить про паттерн поставщик-потребитель. Например тут http://www.rsdn.ru/article/mag/200804/AsyncDotNet.xml .... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |