Showing results for async - .NET Blog

Feb 2, 2012
Post comments count2
Post likes count1

Await, SynchronizationContext, and Console Apps: Part 3

Stephen Toub - MSFT
Stephen Toub - MSFT

In Part 1 and Part 2 of this short series, I demonstrated how you can build a SynchronizationContext and use it run an async method such that all of the continuations in that method will run on serialized on the current thread.  This can be helpful when executing async methods in a console app, or in a unit test framework that doesn’t di...

.NET Parallel Programming
Jan 23, 2012
Post comments count2
Post likes count0

Advanced APM Consumption in Async Methods

Stephen Toub - MSFT
Stephen Toub - MSFT

I’ve previously blogged about how to expose existing Asynchronous Programming Model (APM) implementations as Task-based methods.  This can be done manually using a TaskCompletionSource<TResult>, or it can be done using the built-in wrapper provided in TPL via the Task.Factory.FromAsync method.  By creating a Task-based wrapper...

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

Await, SynchronizationContext, and Console Apps: Part 2

Stephen Toub - MSFT
Stephen Toub - MSFT

Yesterday, I blogged about how you can implement a custom SynchronizationContext in order to pump the continuations used by async methods so that they may be processed on a single, dedicated thread.  I also highlighted that this is basically what UI frameworks like Windows Forms and Windows Presentation Foundation do with their message pumps.N...

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

Implementing a SynchronizationContext.SendAsync method

Stephen Toub - MSFT
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 count3

Await, SynchronizationContext, and Console Apps

Stephen Toub - MSFT
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
Dec 15, 2011
Post comments count0
Post likes count0

Awaiting Socket Operations

Stephen Toub - MSFT
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 3, 2011
Post comments count0
Post likes count0

Coalescing CancellationTokens from Timeouts

Stephen Toub - MSFT
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 10, 2011
Post comments count0
Post likes count0

Crafting a Task.TimeoutAfter Method

Joe Hoag
Joe Hoag

Imagine that you have a Task handed to you by a third party, and that you would like to force this Task to complete within a specified time period. However, you cannot alter the “natural” completion path and completion state of the Task, as that may cause problems with other consumers of the Task. So you need a way to obtain a copy or “proxy” of th...

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

Updated Async CTP

Stephen Toub - MSFT
Stephen Toub - MSFT

In April, we released the Async CTP Refresh, and since then we've seen fantastic adoption of the technology.  We've also seen the technology landscape evolve.  Windows Phone 7.5, aka "Mango", was released.  Silverlight 5 has had both a Beta and an RC release.  And there have been multiple patches to Visual Studio and the .NET Fr...

.NET Parallel Programming
Oct 24, 2011
Post comments count0
Post likes count0

When at last you await

Stephen Toub - MSFT
Stephen Toub - MSFT

When you start using async methods heavily, you’ll likely see a particular pattern of composition pop up from time to time.  Its structure is typically either of the form: async Task FooAsync() {     … // some initialization code without awaits      await BarAsync(…); ...

.NET Parallel Programming