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 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.
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 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 concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask, o concurrency::Scheduler::ScheduleTask metodo.Per attendere completare un'attività leggero, attendere che l'utilità di pianificazione padre arrestare o utilizzare un meccanismo di sincronizzazione, ad esempio un concurrency::event oggetto.
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
Attività
Procedura dettagliata: adattamento del codice esistente per l'utilizzo delle attività leggere