Condividi tramite


Attività leggere

Questo documento descrive il ruolo delle attività leggere nel runtime di concorrenza. Un'attività leggera è un'attività che si pianifica direttamente da un concurrency::Scheduler oggetto o concurrency::ScheduleGroup . Un'attività leggera è simile alla funzione specificata per la funzione CreateThread dell'API Windows. Pertanto, le attività leggere sono utili quando si adatta il codice esistente per usare la funzionalità di pianificazione del runtime di concorrenza. Il runtime di concorrenza usa attività leggere per pianificare agenti asincroni e inviare messaggi tra blocchi di messaggi asincroni.

Suggerimento

Il runtime di concorrenza fornisce un'utilità di pianificazione predefinita, pertanto non è necessario crearne una nell'applicazione. Poiché l'Utilità di pianificazione consente di ottimizzare le prestazioni delle applicazioni, è consigliabile iniziare con la libreria PPL (Parallel Patterns Library) o la libreria degli agenti asincroni se non si ha una novità del runtime di concorrenza.

Le attività leggere comportano un sovraccarico inferiore rispetto agli agenti asincroni e ai gruppi di attività. Ad esempio, il runtime non informa l'utente al termine di un'attività leggera. Inoltre, il runtime non intercetta o gestisce le eccezioni generate da un'attività leggera. Per altre informazioni sulla gestione delle eccezioni e sulle attività leggere, vedere Gestione delle eccezioni.

Per la maggior parte delle attività, è consigliabile usare funzionalità più affidabili, ad esempio gruppi di attività e algoritmi paralleli, perché consentono di suddividere più facilmente attività complesse in quelle più semplici. Per altre informazioni sui gruppi di attività, vedere Parallelismo delle attività. Per altre informazioni sugli algoritmi paralleli, vedere Algoritmi paralleli.

Per creare un'attività leggera, chiamare il metodo concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask o concurrency::Scheduler::ScheduleTask . Per attendere il completamento di un'attività leggera, attendere l'arresto dell'utilità di pianificazione padre o l'uso di un meccanismo di sincronizzazione, ad esempio un oggetto concurrency::event .

Esempio

Per un esempio che illustra come adattare il codice esistente per l'uso di un'attività leggera, vedere Procedura dettagliata: Adattamento di codice esistente per l'uso di attività leggere.

Vedi anche

Utilità di pianificazione
Procedura dettagliata: adattamento del codice esistente per l'uso di attività leggere