.NET LINQ-to-SQL асинхронная фиксация - PullRequest
2 голосов
/ 04 февраля 2010

Я рассматриваю - чтобы получить высокопроизводительное приложение - чтобы сохранить один DataContext в кеше для выбора и обновления ...

Чтобы сохранить время отклика низким, я хотел бы создать асинхронное обновление, подобное тому, которое я написал ниже:

public void AsyncInsert()
{
  DataContext dc = new DataContext();
  dc.MessageTable.InsertOnSubmit(new Message("test1"));
  dc.MessageTable.InsertOnSubmit(new Message("test2"));
  dc.MessageTable.InsertOnSubmit(new Message("test3"));

  dc.AsynchronousSubmitChanges(); // delegate to other thread
}

Возможно ли что-то подобное или даже мыслимое без каких-либо проблем при записи параллельных потоков в один и тот же DataContext?

1 Ответ

1 голос
/ 04 февраля 2010

Я думаю, у вас есть пара проблем здесь. С одной стороны, объект контекста базы данных L2S не является потокобезопасным, если я правильно помню. Я пробовал это с несколькими потоками, и у меня были проблемы. Во-вторых, вы хотите, чтобы ваш объект контекста данных оставался в живых в течение минимально возможного времени. Это тяжелый объект. Поэтому вы хотите создать его экземпляр, выполнить свою работу и быстро ее выпустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...