2009-04-01 12 views

Odpowiedz

17

Rejestr upewni się, że akcje są atomowe, więc nie trzeba ich synchronizować samodzielnie.

Jednakże, jeśli masz wiele procesów/wątków uzyskujących dostęp do rejestru w tym samym czasie, nie ma żadnych gwarancji, co stanie się w pierwszej kolejności. Tyle tylko, że nie dostaniesz zniekształconych danych.

Edytuj: Dalsze czytanie, patrz The inability to lock someone out of the registry is a feature, not a bug.

0

To zależy od tego, co komunikujesz i od tego, jak ważne są te informacje. Załóżmy na przykład, że masz aplikację wykonującą pracę i zapisującą wyniki stanu do klucza rejestru, a inna aplikacja odczytuje ten status i wyświetla go na ekranie. W takim przypadku nie zawracałbym sobie głowy muteksem, ponieważ czytelnik zawsze otrzyma wartość, która "ma sens". To, o co pytasz, jest naprawdę fundamentalnym zagadnieniem projektowania współbieżności.

2

Windows Server 2008 posiada również wsparcie dla transakcyjnego dostępu do rejestru. Here's the overview na MSDN. A oto blog post ogłaszając to z kilkoma pytaniami i odpowiedziami.

4

Jak wspomnieli inni, poszczególne operacje są atomowe. Jeśli potrzebujesz większego zestawu operacji atomowych i kierujesz się na system Vista lub lepszy, możesz skorzystać z obsługi rejestru transakcyjnego dodanej w systemie Vista.

Niestety, nie ma bezpośredniego zarządzania, więc trzeba tworzyć opakowania. http://community.bartdesmet.net/blogs/bart/archive/2006/12/14/Windows-Vista-2D00-Introducing-TxR-in-C_2300_-_2800_Part-1_2900_.aspx pokazuje, jak P/wywołać te metody.

Powiązane problemy