Condividi tramite


Attività leggere

In questo documento viene descritto il ruolo delle attività leggere nel runtime di concorrenza. Per attività leggera si intende un'attività che si pianifica direttamente da un oggetto Scheduler o 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 utilizzare la funzionalità di pianificazione del runtime di concorrenza. Il runtime di concorrenza stesso utilizza le attività leggere per pianificare gli agenti asincroni e inviare messaggi tra i blocchi dei messaggi asincroni.

SuggerimentoSuggerimento

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 PPL (Parallel Patterns Library) o la Libreria di agenti asincroni se non si ha familiarità con il runtime di concorrenza.

Le attività leggere implicano meno sovraccarico dei gruppi di attività e degli agenti asincroni. Il runtime, ad esempio, non invia alcuna notifica all'utente quando un'attività leggera viene completata. Inoltre, il runtime non rileva né gestisce le eccezioni generate da un'attività leggera. Per ulteriori informazioni sulla gestione delle eccezioni e le attività leggere, vedere Gestione delle eccezioni nel runtime di concorrenza.

Per la maggior parte delle attività, è consigliabile utilizzare funzionalità più affidabili, ad esempio gruppi di attività e algoritmi paralleli, poiché consentono di suddividere più facilmente le attività complesse in attività più semplici. Per ulteriori informazioni sui gruppi di attività, vedere Parallelismo delle attività (runtime di concorrenza). Per ulteriori informazioni sugli algoritmi paralleli, vedere Algoritmi paralleli.

Per creare un'attività leggera, chiamare il metodo Concurrency::ScheduleGroup::ScheduleTask, Concurrency::CurrentScheduler::ScheduleTask oppure Concurrency::Scheduler::ScheduleTask. Per attendere il completamento di un'attività leggera, attendere la chiusura di un'utilità di pianificazione padre oppure utilizzare un meccanismo di sincronizzazione, ad esempio un oggetto Concurrency::event.

Esempio

Per un esempio che illustri il modo in cui adattare il codice esistente per utilizzare un'attività leggera, vedere Procedura dettagliata: adattamento del codice esistente per l'utilizzo delle attività leggere.

Vedere anche

Concetti

Utilità di pianificazione (runtime di concorrenza)

Altre risorse

Procedura dettagliata: adattamento del codice esistente per l'utilizzo delle attività leggere

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2010

Il contenuto è stato riorganizzato.

Miglioramento delle informazioni.