Re: Потокобезопасность lock(){ File.AppendText }
От: Аlexey  
Дата: 06.01.11 14:33
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Какие-то может еще грабли есть от использования lock{} в этом случае ?


Думаю основные грабли в том, что доступ к диску — потенциально долгая операция, даже без "зависания". Вы заставляете все свои потоки которые пишут в лог выстраиваться в очередь ожидая записи лога. Видимо более удачным решением было бы созданий очереди в памяти в которую скидываются сообщения и отдельного потока, который занимается переписыванием из очереди на диск. Естественно дотуп к очереди синхронизируется, но такой способ обеспечивает намного более высокуе степень паралелизма чем оборачивание доступа к диску в критическую секцию(lock).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.