Task Parallel Library fa parte di .NET Framework da .NET 4. È un insieme di API per consentire agli sviluppatori di programmare applicazioni asincrone.
Ho un codice asincrono a cui vorrei aggiungere un file CancellationToken. Tuttavia, ci sono molte implementazioni in cui questo non è necessario, quindi mi piacerebbe avere un parametro predefinito, forse CancellationToken.None. Però, Task<x> DoStuff(...., CancellationToken ct = null) rendimenti Un valore di tipo "" non può essere utilizzato come parametro …
Ecco il codice che ho ma non capisco cosa SemaphoreSlimstia facendo. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); if (msg != …
Mi sono imbattuto in alcune best practice per la programmazione asincrona utilizzando le parole chiave async/ di c # await(sono nuovo in c # 5.0). Uno dei consigli dati è stato il seguente: Stabilità: conosci i tuoi contesti di sincronizzazione ... Alcuni contesti di sincronizzazione sono non rientranti e a …
Pertanto, la mia app deve eseguire un'azione quasi continuamente (con una pausa di circa 10 secondi tra ogni esecuzione) per tutto il tempo in cui l'app è in esecuzione o viene richiesta una cancellazione. Il lavoro che deve fare ha la possibilità di richiedere fino a 30 secondi. È meglio …
Sono nuovo alle attività di .Net 4.0 e non sono stato in grado di trovare ciò che pensavo fosse una sostituzione basata su attività o l'implementazione di un timer, ad esempio un'attività periodica. C'è una cosa del genere? Aggiornamento Mi è venuta in mente quella che penso sia una soluzione …
Così recentemente mi è stato detto che il modo in cui stavo usando il mio .ContinueWith for Tasks non era il modo corretto di usarli. Devo ancora trovare prove di ciò su Internet, quindi vi chiederò e vedremo qual è la risposta. Ecco un esempio di come utilizzo .ContinueWith: public …
Sto lavorando a un progetto di rete multi-tasking e sono nuovo Threading.Tasks. Ho implementato un semplice Task.Factory.StartNew()e mi chiedo come posso farlo Task.Run()? Ecco il codice di base: Task.Factory.StartNew(new Action<object>( (x) => { // Do something with 'x' }), rawData); Ho esaminato System.Threading.Tasks.Tasknel browser degli oggetti e non sono riuscito …
Vorrei awaitsul risultato in BlockingCollection<T>.Take()modo asincrono, quindi non blocco il thread. Alla ricerca di qualcosa di simile: var item = await blockingCollection.TakeAsync(); So che potrei farlo: var item = await Task.Run(() => blockingCollection.Take()); ma questo uccide l'intera idea, perché un altro thread (di ThreadPool) viene invece bloccato. C'è qualche alternativa?
Ho appena fatto un'osservazione curiosa riguardo al Task.WhenAllmetodo, quando eseguivo .NET Core 3.0. Ho passato un'attività semplice Task.Delaycome argomento singolo a Task.WhenAll, e mi aspettavo che l'attività avvolta si comportasse in modo identico all'attività originale. Ma non è così. Le continuazioni dell'attività originale vengono eseguite in modo asincrono (il che …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.