Megosztás a következőn keresztül:


Szálkészlet API

A szálkészlet alkalmazásprogramozási felülete (API) objektumalapú kialakítást használ. Az alábbi objektumok mindegyikét egy felhasználói módú adatstruktúra képviseli:

  • A készletobjektumok munkavégző szálak készletei, amelyek a munka elvégzéséhez használhatók. Minden folyamat szükség szerint több különálló készletet hozhat létre különböző jellemzőkkel. Minden folyamathoz tartozik egy alapértelmezett készlet is.
  • A törlési csoport a visszahívást generáló objektumok készletéhez van társítva. A függvények az egyes tisztítási csoportok tagjaiként működő összes objektum várakozására és kiadására szolgálnak. Ez felszabadítja az alkalmazást attól, hogy nyomon kövesse az általa létrehozott összes objektumot.
  • A rendszer hozzárendel egy munkaobjektumot egy készlethez, és opcionálisan egy tisztítási csoporthoz. Közzétehető, így egy feldolgozószál a készletből végrehajtja a visszahívását. Egy munkahelyi objektum több bejegyzéssel is rendelkezhet; mindegyik visszahívást hoz létre. A post művelet erőforráshiány miatt nem hiúsulhat meg.
  • Egy időzítőobjektum szabályozza a visszahívások ütemezését. Minden alkalommal, amikor egy időzítő lejár, a visszahívás a munkavégző készletbe kerül. Az időzítő beállítása erőforrások hiánya miatt nem hiúsulhat meg.
  • A várakozási objektumok miatt a pincérszál várakozni fog egy várakozó fogóponton. Miután a várakozás teljesült, vagy az időtúllépési időszak lejárt, a pincérszál a várakozási objektumok visszahívását a várakozási objektum feldolgozókészletére irányítja. A várakozás beállítása erőforrások hiánya miatt nem hiúsulhat meg.
  • Az I/O-objektumok fájlleírót társítanak a szálkészlet I/O befejezési portjához. Amikor egy aszinkron I/O-művelet befejeződik, egy feldolgozószál felveszi a művelet állapotát, és meghívja az I/O-objektum visszahívását.

Az alábbi táblázat az eredeti és az aktuális szálkészlet API-k funkcióit ismerteti.

Vonás Eredeti API Aktuális API
Szinkronizál RegisterWaitForSingleObject
UnregisterWaitEx
CloseThreadpoolWait
CreateThreadpoolWait
SetThreadpoolWait
WaitForThreadpoolWaitCallbacks
Munka QueueUserWorkItem
CloseThreadpoolWork
CreateThreadpoolWork
SubmitThreadpoolWork
TrySubmitThreadpoolCallback
WaitForThreadpoolWorkCallbacks
Időzítő CreateTimerQueue
CreateTimerQueueTimer
ChangeTimerQueueTimer
DeleteTimerQueueTimer
DeleteTimerQueueEx
CloseThreadpoolTimer
CreateThreadpoolTimer
IsThreadpoolTimerSet
SetThreadpoolTimer
WaitForThreadpoolTimerCallbacks
I/O BindIoCompletionCallback
CancelThreadpoolIo
CloseThreadpoolIo
CreateThreadpoolIo
StartThreadpoolIo
WaitForThreadpoolIoCallbacks
Törlési csoport CloseThreadpoolCleanupGroup
CloseThreadpoolCleanupGroupMembers
CreateThreadpoolCleanupGroup
Medence CloseThreadpool
CreateThreadpool
SetThreadpoolThreadMaximum
SetThreadpoolThreadMinimum
Visszahívási környezet DestroyThreadpoolEnvironment
InitializeThreadpoolEnvironment
SetThreadpoolCallbackCleanupGroup
SetThreadpoolCallbackLibrary
SetThreadpoolCallbackPool
SetThreadpoolCallbackPriority
SetThreadpoolCallbackRunsLong
Visszahívási CallbackMayRunLong
Visszahívás törlése DisassociateCurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns
ReleaseSemaphoreWhenCallbackReturns
SetEventWhenCallbackReturns

 

szálkészletek

A szálkészletfüggvények