ObjectPool je nová funkcia od Microsoftu, Microsoft nám pomáha udržiavať niektoré objekty, ktoré je možné opätovne použiť.
Jednoducho povedané, podobne ako pri zdieľaných bicykloch, keď ho použijete, naskenovate kód na odomknutie, vozidlo znamená, že je obsadené, keď ho použijete, keď ho zamknete, vozidlo uvoľní obsadenosť. Tieto okupácie a prepustenia sú pre nás všetky udržiavané platformou.
Niektoré objekty nie sú bezpečné pre vlákna, ale zakaždým, keď objekt inštancionujeme, musíme spotrebovať určité zdroje.
Najprv vytvoríme novú triedu SqlConnectionPooledObjectPolicy, ktorá zdedí rozhranie IPooledObjectPolicy <T>a potrebuje implementovať jeho dve metódy.
Ako inštancovať objekt v metóde Create,Return označuje, či je objekt stále možné znovu použiť, a keď je vrátený nepravdivý výsledok, objekt bude vymazaný z objektového poolu.
Zdrojový kód testu je nasledovný:
Výsledky testov sú nasledovné:
Je vidieť, že connection pool je o niečo pomalší pri prvých 10 dotazoch a potom je rýchlejší ako pri každej inštancii SqlConnection.
Priložený je zdrojový kód
Turisti, ak chcete vidieť skrytý obsah tohto príspevku, prosím. Odpoveď
|