.NET Parallel Programming

All about Async/Await, System.Threading.Tasks, System.Collections.Concurrent, System.Linq, and more…

TPL Dataflow preview available for download

As mentioned here, the Visual Studio Async CTP is now available for download from https://msdn.com/vstudio/async.  Not only does this download add language support into C# and Visual Basic for writing asynchronous methods (in which you can easily “await” tasks), it also includes a new .NET library we lovingly refer to as &...

Language support for Tasks!

Today is a very exciting day for Parallel Extensions, and indeed for all developers using C# and Visual Basic and who are interested in writing more responsive and scalable applications. At the PDC this morning, Anders Hejlsberg just announced the Visual Studio Async CTP, which you can download immediately from the landing page at https://msdn...

FAQ :: StartNew() with TaskScheduler.FromCurrentSynchronizationContext() doesn’t work?

We’ve seen a number of folks write the following code to execute on the UI thread and get unexpected behavior. TaskScheduler uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();Task uiTask = Task.Factory.StartNew(delegate{    // … Update UI component; BUG!}, uiScheduler);The issue is that the ...

Creating pre-completed Tasks

 We’ve been considering adding support for creating completed Tasks from an existing result.  Here’s a prototypical example of where this could be valuable. void Task<float> ComputeAsync(...) {     if (!resultIsCached)     {         return Task<...