Потоки Best Practices - PullRequest
       45

Потоки Best Practices

42 голосов
/ 19 марта 2009

Многие проекты, над которыми я работаю, имеют плохие реализации многопоточности, и я - обманщик, который должен отследить их. Есть ли лучший способ обработки потоков? Мой код всегда ждет события, которое никогда не срабатывает.

Я вроде как шаблон дизайна или что-то в этом роде.

Ответы [ 11 ]

0 голосов
/ 19 марта 2009

Вместо блокировки на контейнерах вы должны использовать ReaderWriterLockSlim. Это дает вам базу данных, как блокировку - бесконечное количество читателей, один писатель и возможность обновления.

Что касается шаблонов проектирования, pub / sub довольно хорошо развиты, и их очень легко писать в .NET (используя readerwriterlockslim). В нашем коде у нас есть объект MessageDispatcher, который каждый получает. Вы подписываетесь на него или отправляете сообщение совершенно асинхронно. Все, что вам нужно для блокировки - это зарегистрированные функции и любые ресурсы, с которыми они работают. Это делает многопоточность намного проще.

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