потокобезопасным не имея не единой блокировки, кто может пояснить и где об этом можно почитать?
                  
                  
                  
                  
                  
                      public class MessageProcessor
                  
                  
                      {
                  
                  
                          private List<IMessageHandler> _handlers;
                  
                  
                  
                  
                  
                          public MessageProcessor(List<IMessageHandler> handlers)
                  
                  
                          {
                  
                  
                              _handlers = handlers.ToList();
                  
                  
                          }
                  
                  
                  
                  
                  
                          public void ProcessMessage(Message msg)
                  
                  
                          {
                  
                  
                              _handlers.ForEach(x => x.HandleMessage(msg));
                  
                  
                          }
                  
                  
                  
                  
                  
                          public void AddHandler(IMessageHandler handler)
                  
                  
                          {
                  
                  
                              var result = _handlers.Union(new IMessageHandler[] { handler }).ToList();
                  
                  
                              _handlers = result;
                  
                  
                          }
                  
                  
                  
                  
                  
                          public void RemoveHandler(IMessageHandler handler)
                  
                  
                          {
                  
                  
                              var result = _handlers.Where(x => x != handler).ToList();
                  
                  
                              _handlers = result;
                  
                  
                          }
                  
                  
                      }
                  
                  
                
Как была доказана потокобезопасность?
Я один не понимаю как должна выглядеть потоконебезопасность здесь?
.Add / .Remove для листа :)
А где они там?
это как иммутабл коллекции на не иммутабл, так и долно быть
Обсуждают сегодня