Udostępnij za pośrednictwem


Tworzenie magazynu danych stanu dla zespołów współbieżnych

Podczas tworzenia własnych zestawów równoległych postępuj zgodnie z wytycznymi Wytyczne dotyczące tworzenia zestawów równoległych i utwórz dowolną bibliotekę DLL, która ma zostać dołączona do zestawu zgodnie z wytycznymi w Tworzenie biblioteki DLL dla zestawu równoległego.

Przestrzegaj następujących wytycznych dotyczących przechowywania stanu:

  • Zaprojektuj magazyn stanu, aby był zgodny z poprzednimi i przyszłymi wersjami. Spodziewaj się, że wersje będą używane w dowolnej kolejności: na przykład wersja 1, a następnie wersja 3, a następnie wersja 2.

  • Zainicjuj i ustaw domyślne ustawienia zestawu w kodzie zestawu. Nie zapisuj ustawień domyślnych w rejestrze.

  • Ustawienia rejestru muszą być zapisywane dla poszczególnych wersji, aby odizolować wiele wersji zestawu, które mogą być uruchamiane w tym samym czasie. Zaprojektuj zestaw side-by-side, aby prawidłowo przechowywać i obsługiwać stan zestawu podczas scenariuszy udostępniania równoległego.

  • Zestawy często przechowują informacje o stanie w kluczach rejestru. Utwórz zestaw plików nagłówkowych i funkcji pomocniczych, aby zapewnić łatwy sposób wersjonowania kluczy rejestru zawierających stan zespołu.

  • Wszystkie informacje o stanie zestawu zapisane w rejestrze muszą być odizolowane od innych wersji zestawu. Ustawienia stanu przechowywane w rejestrze muszą być zapisywane w poszczególnych sekcjach wersji rejestru. Jest to wymagane zarówno w częściach HKLM, jak i HKCU rejestru. Na przykład zapisz ustawienia stanu HKCU dla wersji zestawu XXXX w następującym kluczu rejestru:

    HKCU\MyCompany\MyComponent\VersionXXXX

  • Wszelkie informacje o stanie przechowywane w rejestrze przez udostępnione zestawy muszą być zapisywane w poszczególnych sekcjach wersji rejestru. Na przykład ustawienie stanu o nazwie EnableSuperCoolFeature może mieć wartość true lub FALSE. Zapisz wartość dla współużytkowanego równoległego zestawu w następujący sposób:

    HKEY_CurrentUser\Software\MyCompany\MyComponent\Wersja 01.01\EnableSuperCoolFeature = TRUE

  • Informacje o stanie, które są przechowywane w rejestrze przez zestawy prywatne, muszą być zapisywane w poszczególnych sekcjach aplikacji w rejestrze. Spowoduje to odizolowanie ustawień stanu zestawu w ramach aplikacji. Aby skonfigurować wirtualny katalog główny, możesz użyć funkcji GetModuleFileName. Jeśli na przykład wersja zestawu XXYY jest prywatnym zestawem "SomeApplication", wywołanie metody GetModuleFileName zwraca wartość "SomeApplication", a wszystkie ustawienia stanu prywatnego dla zestawu powinny zostać zapisane w następującym kluczu:

    HKCU\MyCompany\MyComponent\VersionXXYY\SomeApplication

  • Ustaw ustawienia stanu współdzielonego przechowywane w rejestrze jako prywatne w kontekście zestawu, który działa. Aby skonfigurować wirtualny katalog główny, możesz użyć funkcji GetModuleFileName. Należy to zrobić dla gałęzi HKLM i HKCU.

  • W idealnym przypadku należy przyjąć model trwałości, w którym aplikacja utrzymuje stan i nie zmienia rejestru. Aplikacja nie powinna bezpośrednio dotykać wpisów rejestru składnika. Zamiast tego zestaw powinien oferować funkcje interfejsu API, które zapisują lub przywracają ustawienia zgodne obok siebie.

  • Zestawy mogą zapisywać ustawienia stanu w magazynach spoza rejestru, aby umożliwić zestawowi interakcję ze stanem globalnym. Zestawy równoległe mogą używać następujących magazynów zgodnych obok siebie:

    • Chroniony magazyn (pstore)
    • Pamięć podręczna WinInet
    • Microsoft SQL Server