استخر اتصال بازنگری شد
Contents
[
Hide
]
با انتشار Aspose.Email 19.3، استخر اتصال بازنگری شد. جدید EmailClient کلاسی معرفی شده است که در نهایت جایگزین CredentialsByHostClient کلاس. EmailClient کلاس یک ConnectionAsgmtMode ویژگی که حالت تخصیص اتصال را در محیط چندرشتهای تعریف میکند. EmailClient.ConnectionAsgmtMode با استفاده از ConnectionAsgmtType قابل شمارش.
انواع اتصال
سه نوع اتصال زیر وجود دارد:
- اتصال اصلی: این اتصال همراه با کلاینت ایمیل ساخته و حذف میشود. نمیتواند بهصورت دستی ساخته یا حذف شود.
- اتصال پیشفرض: کاربر میتواند اتصالات پیشفرض برای رشتهها با CreateConnection متد. اگر اتصال پیشفرض وجود داشته باشد، تمام متدهای کلاینت ایمیل که در یک رشته اجرا میشوند، بهصورت ضمنی از این اتصال استفاده میکنند. فقط یک اتصال پیشفرض میتواند برای هر رشته وجود داشته باشد. میتواند بهصورت دستی یا خودکار ایجاد شود. این بسته به ویژگی EmailClient.ConnectionAsgmtMode است. این اتصالات میتوانند بهصورت دستی با EmailClient.CreateConnection(createAsDefaultConnection = true) متد. اگر اتصال پیشفرض استفاده نشود (بسته به حالت تخصیص اتصال)، اتصال اصلی بهصورت ضمنی به جای آن استفاده میشود.
- اتصالات مستقل: اینها اتصالی هستند که به رشتهها لینک نمیشوند. میتوانند بهصورت دستی ایجاد شوند و باید بهصورت صریح بهعنوان پارامتر متد استفاده شوند. این اتصالات میتوانند بهصورت دستی با EmailClient.CreateConnection() متد یا EmailClient.CreateConnection(createAsDefaultConnection = false) متد.
انواع تخصیص اتصال
برای تنظیم EmailClient.ConnectionAsgmtMode ویژگی، ConnectionAsgmtType قابل شمارش استفاده میشود. انواع تخصیص ارائه شده توسط ConnectionAsgmtType در زیر فهرست شدهاند.
- ConnectionAsgmtType.UseMainOrDefault این حالت بهطور پیشفرض در کلاینتهای ایمیل استفاده میشود. کلاینت ایمیل برای تمام عملیات از چندین رشته از اتصال اصلی استفاده میکند اگر اتصال پیشفرض ایجاد نشده باشد، یا اگر یک اتصال بهعنوان پارامتر متد به صراحت پاس داده نشود. اتصال اصلی اتصالی است که همزمان با یک کلاینت ایمیل ساخته میشود. کاربر میتواند اتصالات پیشفرض برای رشتهها با CreateConnection متد. اگر اتصال پیشفرض برای یک رشته ایجاد شود، بهصورت ضمنی برای تمام متدهای کلاینت ایمیل که در این رشته فراخوانی میشوند، استفاده میشود. اگر اتصال پیشفرض برای یک رشته ایجاد نشده باشد، اتصال اصلی برای تمام متدهای کلاینت ایمیل که در این رشته فراخوانی میشوند، استفاده میشود. کاربر همچنین میتواند اتصالاتی که به رشتهها لینک نشدهاند (اتصالات پیشفرض نیستند) را با استفاده از CreateConnection متد. اگر کاربر بخواهد از اتصالات دیگر (نه اصلی و نه پیشفرض) استفاده کند، باید این اتصال را بهصورت صریح بهعنوان پارامتر متدی که میخواهد استفاده کند، پاس بدهد. کاربر میتواند بهطور اضافی هر تعداد اتصال ایجاد کند. اتصال پیشفرض فقط میتواند برای هر رشته یکبار وجود داشته باشد. لطفاً توجه داشته باشید که اتصالات پیشفرض اگر کاربر از اشیاء Thread برای برنامهنویسی چندوظیفهای استفاده کند درست کار میکنند. اگر کاربر از ConnectionPool یا از اشیاء Task برای برنامهنویسی چندوظیفهای استفاده کند، این حالت ممکن است منجر به رفتار نادرست برنامه شود. برای جلوگیری از این مشکل، کاربر باید در پایان اجرای کد (اگر از آن استفاده میکند) اتصال پیشفرض را بهصورت دستی آزاد کند.
- ConnectionAsgmtType.UseMain کلاینت ایمیل برای تمام عملیات از چندین رشته از اتصال اصلی استفاده میکند. اتصال اصلی اتصالی است که همزمان با ایجاد کلاینت ایمیل ساخته میشود. کاربر نمیتواند اتصالات پیشفرض ایجاد کند. کاربر میتواند اتصالاتی که به رشتهها لینک نشدهاند (اتصالات پیشفرض نیستند) را با استفاده از CreateConnection متد. اگر کاربر بخواهد از اتصالات دیگر (نه اصلی و نه پیشفرض) استفاده کند، باید این اتصال را بهصورت صریح بهعنوان پارامتر متدی که میخواهد استفاده کند، پاس بدهد.
- ConnectionAsgmtType.UseDefault کلاینت ایمیل بهصورت ضمنی فقط به اتصالات پیشفرض برای تمام عملیات از چندین رشته استفاده میکند. اتصال اصلی در این حالت استفاده نمیشود. اگر اتصال پیشفرض برای برخی رشتهها ایجاد نشده باشد (در اولین فراخوانی متد کلاینت ایمیل)، کلاینت ایمیل بهصورت ضمنی برای آن رشته قبل از اجرای اولین عملیات، اتصال پیشفرض ایجاد میکند. کاربر نمیتواند با استفاده از CreateConnectionمتد زیرا بهطور خودکار ایجاد میشوند. وقتی اتصال پیشفرض برای یک رشته ایجاد میشود، بهصورت ضمنی برای تمام متدهای کلاینت ایمیل که در این رشته فراخوانی میشوند، استفاده میشود. کاربر همچنین میتواند اتصالاتی که به رشتهها لینک نشدهاند (اتصالات پیشفرض نیستند) را با استفاده از CreateConnectionمتد. اگر کاربر بخواهد از اتصالات دیگر (نه اصلی و نه پیشفرض) استفاده کند، باید این اتصال را بهصورت صریح بهعنوان پارامتر متدی که میخواهد استفاده کند، پاس بدهد. کاربر میتواند بهطور اضافی هر تعداد اتصال ایجاد کند. فقط یک اتصال پیشفرض میتواند برای هر رشته استفاده شود. لطفاً توجه داشته باشید که اتصالات پیشفرض اگر کاربر از اشیاء Thread برای برنامهنویسی چندوظیفهای استفاده کند درست کار میکنند. اگر کاربر از ConnectionPool یا از اشیاء Task برای برنامهنویسی چندوظیفهای استفاده کند، این حالت ممکن است منجر به رفتار نادرست برنامه شود. برای جلوگیری از این مشکل، کاربر باید در پایان اجرای کد بهصورت دستی اتصال پیشفرض را آزاد کند.