ObjectPool — це нова функція від Microsoft, Microsoft допомагає нам підтримувати деякі об'єкти, які можна повторно використовувати.
Простіше кажучи, подібно до спільних велосипедів: коли ви користуєтеся ним, скануєте код, щоб розблокувати, автомобіль означає, що він зайнятий, коли ви ним користуєтеся, коли ви замикаєте машину, автомобіль відпускає пасажира. Усі ці професії та звільнення підтримуються платформою для нас.
Деякі об'єкти не є захищеними для потоків, але кожного разу, коли ми їх створюємо, потрібно споживати певні ресурси.
По-перше, ми створюємо новий клас SqlConnectionPooledObjectPolicy, який успадковує <T>інтерфейс IPooledObjectPolicy і потребує реалізації двох його методів.
Як створити об'єкт у методі Create,Return вказує, чи можна об'єкт ще використовувати повторно, і при поверненні false об'єкт видаляється з пулу об'єктів.
Вихідний код тесту виглядає так:
Результати тесту такі:
Видно, що пул з'єднань трохи повільніший на перших 10 запитах, а після цього він швидший за кожну інстанцію SqlConnection.
Додано вихідний код
Туристи, якщо ви хочете побачити прихований контент цього допису, будь ласка Відповідь
|