Showing category results for .NET Parallel Programming

Jan 20, 2012
Post comments count0
Post likes count0

Implementing a SynchronizationContext.SendAsync method

Stephen Toub - MSFT

I recently saw two unrelated questions, the answers to which combine to form a potentially useful code snippet.The first question was about SynchronizationContext.  SynchronizationContext provides a Post method, which asynchronously schedules the supplied delegate and object state to be executed according to the SynchronizationContext’s ...

.NET Parallel Programming
Jan 20, 2012
Post comments count4
Post likes count4

Await, SynchronizationContext, and Console Apps

Stephen Toub - MSFT

When I discuss the new async language features of C# and Visual Basic, one of the attributes I ascribe to the await keyword is that it “tries to bring you back to where you were.” For example, if you use await on the UI thread of your WPF application, the code that comes after the await completes should run back on that same UI thread. ...

.NET Parallel Programming
Jan 14, 2012
Post comments count0
Post likes count0

FAQ on Task.Start

Stephen Toub - MSFT

Recently I’ve heard a number of folks asking about Task.Start, when and when not to use it, how it behaves,and so forth.  I thought I’d answer some of those questions here in an attempt to clarify and put to rest any misconceptions about what it is and what it does.1. Question: When can I use Task.Start?The Start instance method ma...

.NET Parallel Programming
Dec 15, 2011
Post comments count0
Post likes count0

Awaiting Socket Operations

Stephen Toub - MSFT

The System.Net.Sockets.Socket class in .NET exposes multiple sets of asynchronous methods that perform the same basic operations but that are exposed with different patterns.The first set follows the APM pattern, where for a synchronous method like Receive, the BeginReceive and EndReceive methods are exposed.  If you want to be able to “...

.NET Parallel Programming
Dec 5, 2011
Post comments count0
Post likes count0

Paper :: Guide to Implementing Custom TPL Dataflow Blocks

Danny Shih

TPL Dataflow includes a number of built-in, already-implemented blocks that target the most common scenarios.  Additionally, some flexibility is provided by the set of options that may be used to tweak block behaviors.  However, a developer may still choose to implement a custom block for advanced scenarios where the built-in ones are not...

.NET Parallel Programming
Dec 3, 2011
Post comments count0
Post likes count0

Coalescing CancellationTokens from Timeouts

Stephen Toub - MSFT

In the .NET Framework 4.5 Developer Preview, you’ll find that CancellationTokenSource now has timeout support built directly into its implementation.  This makes it very easy to create a token that will automatically have cancellation requested after a particular time interval, e.g. public static CancellationToken FromTimeout(int millise...

.NET Parallel Programming
Nov 11, 2011
Post comments count0
Post likes count0

How to use C++ AMP from C# using WinRT

Igor Ostrovsky - MSFT

[Updated 5/17/2012 for Visual Studio 11 Beta] In a previous article, How to use C++ AMP to C#, we described how you can use P/Invoke to call into C++ AMP and accelerate your C# apps on GPUs and other heterogeneous hardware. In this post, we'll take a look at how the same task becomes easier in Windows 8 using WinRT. Before attempting to call C++ AM...

.NET Parallel Programming
Nov 10, 2011
Post comments count0
Post likes count0

New in .NET 4.5: ThreadLocal.Values

Igor Ostrovsky - MSFT

Available since .NET 4, ThreadLocal<T> is a container that holds a separate value for every thread. In practice, ThreadLocal<T> is often convenient for storing per-thread counters, resources, or partial results. As mentioned earlier on this blog, we have been thinking about adding a Values property to enumerate over the values from all...

.NET Parallel Programming
Nov 10, 2011
Post comments count0
Post likes count0

PLINQ Queries That Run in Parallel in .NET 4.5

Igor Ostrovsky - MSFT

One interesting thing to know about PLINQ is that not all queries are guaranteed to execute in parallel (See PLINQ Queries That Run Sequentially for reference). You can think of the AsParallel method as a hint to run in parallel for query shapes that it believes will be faster. By default, PLINQ prefers to use a simple sequential algorithm over a p...

.NET Parallel Programming
Nov 10, 2011
Post comments count0
Post likes count0

Paper :: TPL Performance Improvements in .NET 4.5

Danny Shih

We invested a lot of time into making parallel programming “just faster” for .NET 4.5.  You’ve already seen some neat tricks to ConcurrentDictionary.  There’s a lot more to say about improving the performance of the Task Parallel Library, and Joe Hoag has a written an excellent paper on the subject:TPL Performance ...

.NET Parallel Programming