Anslutningspool omstrukturerad

Med lanseringen av Aspose.Email 19.3 har anslutningspoolen omstrukturerats. Ny EmailClient klass har introducerats som så småningom kommer att ersätta CredentialsByHostClient klass. Den EmailClient klass tillhandahåller en ConnectionAsgmtMode egenskap som definierar läget för anslutningsallokering i en flertrådad miljö. EmailClient.ConnectionAsgmtMode sätts med ConnectionAsgmtType enumerable.

Anslutningstyper

Det finns följande tre anslutningstyper:

  • Huvudanslutningen: Detta är anslutningen som skapas och avyttras tillsammans med e‑postklienten. Den kan inte skapas eller avyttras manuellt.
  • Standardanslutning: Användaren kan skapa standardanslutningar för trådar med CreateConnection metod. Om standardanslutning finns, kommer alla metoder i e‑postklienten som körs i en tråd implicit att använda denna anslutning. Endast en standardanslutning kan finnas per tråd. Den kan skapas manuellt eller automatiskt. Det beror på egenskapen EmailClient.ConnectionAsgmtMode. Dessa anslutningar kan skapas manuellt med EmailClient.CreateConnection(createAsDefaultConnection = true) metod. Om standardanslutningen inte används (beror på anslutningsallokeringsläget), används huvudanslutningen implicit istället.
  • Oberoende anslutningar: Detta är anslutningar som inte är kopplade till trådar. De kan skapas manuellt och måste användas explicit som en metodparameter. Dessa anslutningar kan skapas manuellt med EmailClient.CreateConnection() metod eller EmailClient.CreateConnection(createAsDefaultConnection = false) metod.

Anslutningsallokeringstyper

För att konfigurera EmailClient.ConnectionAsgmtMode egenskap, ConnectionAsgmtType enumerable används. Allokeringstyperna som tillhandahålls av ConnectionAsgmtType är listade nedan.

  • ConnectionAsgmtType.UseMainOrDefault Detta läge används som standard i e‑postklienter. E‑postklienten använder huvudanslutningen för alla operationer från flera trådar om standardanslutning inte har skapats, eller om en anslutning inte har passerats som metodparameter explicit. Huvudanslutningen är en anslutning som skapas samtidigt som en e‑postklient. Användaren kan skapa standardanslutningar för trådar med CreateConnection metod. Om standardanslutning för en tråd har skapats, används den implicit för alla metoder i e‑postklienten som anropas i den tråden. Om standardanslutning för en tråd inte har skapats, används huvudanslutningen för alla metoder i e‑postklienten som anropas i den tråden. Användaren kan också skapa anslutningar som inte är kopplade till trådar (inte standardanslutningar) med CreateConnection metod. Om användaren vill använda andra anslutningar (varken huvud- eller standardanslutning) måste han skicka denna anslutning explicit som en parameter till den metod han vill använda. Användaren kan dessutom skapa ett obegränsat antal anslutningar. Standardanslutning kan bara vara en per tråd. Observera att standardanslutningar fungerar korrekt om användaren använder Thread‑objekt för multitasking‑programmering. Om användaren använder ConnectionPool eller Task‑objekt för multitasking‑programmering kan detta läge leda till felaktigt beteende i applikationen. För att undvika detta problem måste användaren manuellt avaktivera standardanslutningen (om han använder den) i slutet av kodkörningen.
  • ConnectionAsgmtType.UseMain E‑postklienten använder huvudanslutningen för alla operationer från flera trådar. Huvudanslutningen är en anslutning som skapas samtidigt som e‑postklienten. Användaren kan inte skapa standardanslutningar. Användaren kan skapa anslutningar som inte är kopplade till trådar (inte standardanslutningar) med CreateConnection metod. Om användaren vill använda andra anslutningar (varken huvud- eller standardanslutning) måste han skicka denna anslutning explicit som en parameter till den metod han vill använda. 
  • ConnectionAsgmtType.UseDefault E‑postklienten använder implicit endast standardanslutningar för alla operationer från flera trådar. Huvudanslutningen används inte i detta läge. Om standardanslutning inte har skapats för någon tråd (första anropet av e‑postklientmetod), skapar e‑postklienten en standardanslutning implicit för tråden innan den första operationen utförs. Användaren kan inte skapa standardanslutningar för trådar med CreateConnectionmetod eftersom de skapas automatiskt. När standardanslutning för en tråd skapas, används den implicit för alla metoder i e‑postklienten som anropas i den tråden. Användaren kan också skapa anslutningar som inte är kopplade till trådar (inte standardanslutningar) med CreateConnectionmetod. Om användaren vill använda andra anslutningar (varken huvud- eller standardanslutning) måste han skicka denna anslutning explicit som en parameter till den metod han vill använda. Användaren kan dessutom skapa ett obegränsat antal anslutningar. Endast en standardanslutning kan användas per tråd. Observera att standardanslutningar fungerar korrekt om användaren använder Thread‑objekt för multitasking‑programmering. Om användaren använder ConnectionPool eller Task‑objekt för multitasking‑programmering kan detta läge leda till felaktigt beteende i applikationen. För att undvika detta problem måste användaren manuellt avaktivera standardanslutningen i slutet av kodkörningen.