Używam Spring.NET i NHibernate przez kilka lat i jestem bardzo zadowolony. Jednak zawsze grałem z wieloma wątkami, rozszerzeniami reaktywnymi i wreszcie z Task Parallel Library, która jest świetną strukturą. Niestety wszystkie podejścia wielowątkowe zawodzą w związku z sesją NHiberntate, która nie jest bezpieczna dla wątków.C# zadanie Biblioteka równoległa i NHibernate/Spring.NET
Pytam cię, w jaki sposób mogę korzystać z programowania równoległego i nadal korzystać z NHibernate.
Na przykład: Mam CustomerRegistrationService
klasę, która metoda Register
wykonuje kilka zadań:
ICustumer customer = this.CreateCustomerAndAdresses(params);
this.CreateMembership(customer);
this.CreateGeoLookups(customer.Address);
this.SendWelcomeMail(customer);
Dwie ostatnie metody byłyby idealnymi kandydatami do biegną równolegle, CreateGeoLookups
nazywa niektórych usług internetowych w celu ustalenia geo lokalizacji Klienta adres i tworzy nowe jednostki, a także aktualizuje samego klienta. SendWelcomMail
robi to, co mówi.
Ponieważ CreateGeoLookups
używa NHibernate (chociaż przez obiekty repozytorium, więc NHibernate jest ostro ukryty przez Interfaces/Dependency Inection) nie będzie działać z Task.Factory.StarNew (...) lub innymi mechanizmami Threading.
Moje pytanie nie dotyczy rozwiązania tego problemu, który opisałem, ale chciałbym usłyszeć od ciebie o metodach NHibenrate, Spring.NET i równoległych.
Dziękuję bardzo Max
Naprawdę powinieneś edytować swoje główne pytanie z tym pytaniem. Czy któryś z nich zadziałał jako odpowiedź? – paqogomez