AOP werden können, verwenden Sie zum austauschen von Daten zwischen verschiedenen threads ausgeführt in Anwendung Prozess?
-
07-07-2019 - |
Frage
UPDATE:Ich bin nicht klar in welchem Zusammenhang AOP sollte verwendet werden?Wie können wir verwenden die AOP für logging-Zwecke, Sicherheit(Authentifizierung) verwenden, schlagen Sie bitte ein paar andere Szenarien, in denen wir profitieren können von AOP.
Kann AOP verwendet werden, um Daten zwischen verschiedenen threads ausgeführt in Anwendung Prozess?
Lösung
Aspekt-orientierte Programmierung ist ideal, wenn Sie brauchen, um zu reduzieren die "cross-cutting" - Funktionalität in Ihre code-Basis.Was dies bedeutet ist, haben Sie gemeinsamen code (Protokollierung, Sicherheit), die Klassen implementieren müssen, aber Sie kann nicht abstrahieren, dass Funktionen in Basis-Klassen.
So, AOP ist wirklich kleiner diese Stücke Funktionalität und Integration, die zur Laufzeit oder compile-Zeit, in Ihrem code, wo Sie das "cross-cutting" - Funktionalität vorhanden ist.
Ressourcen
Derzeit AOP ist nicht gebaut in C# gibt es aber die folgenden frameworks bauen kann AOP:
AOP für thread-Daten
In der Regel, mit AOP zu teilen Daten zwischen threads ist nicht der Weg zu gehen.Es gibt auch andere Techniken für Entwickler erhältlich, das zu tun:
[ThreadStaticAttribute]
Append dieses Attribut, um die Felder zu diktieren, um die .NET-runtime, die das folgende Feld wird einzigartig sein, um mehrere threadsSynchronisation (häufigste Technik) Verwenden
Mutexes
,Semaphores
,ReaderWriter
Schlösser undEventWaitHandles
zur Synchronisation des Zugriffs auf lokale oder Globale Daten aus mehreren threads.In C#, dielock
- Anweisung ist syntaktischer Zucker für dasMonitor
Klasse, die verwendet werden können, um "lock" den Zugriff auf ein Objekt aus einem einzigen thread.
Andere Tipps
Ich mag es zu denken, AOP als smart-hinter-den-kulissen-code generation (compile-Zeit) / Ausführung (run-time), so dass Sie im Grunde fast alles tun.Es hat alle Vorteile (und mehr) der traditionelle code-Generierung ohne Nachteile (z.B.Wartbarkeit).