Attività leggere

 

Per la documentazione più recente di Visual Studio 2017 RC, vedere Documentazione di Visual Studio 2017 RC.

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 concurrency::Scheduler 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 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.

System_CAPS_ICON_tip.jpg 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 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.

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à. 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'uso di attività leggere.

Vedere anche

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