Browse by Tags

Tagged Content List
  • Blog Post: Should I expose synchronous wrappers for asynchronous methods?

    In a previous post Should I expose asynchronous wrappers for synchronous methods? , I discussed “async over sync,” the notion of using synchronous functionality asynchronously and the benefits that doing so may or may not yield. The other direction of “sync over async” is also interesting to explore...
  • Blog Post: Is it ok to use nested Parallel.For loops?

    Every now and then, I get this question: “is it ok to use nested Parallel.For loops?” The short answer is “yes.”  As is often the case, the longer answer is, well, longer. Typically when folks ask this question, they’re concerned about one of two things.  First, they’re concerned that each...
  • Blog Post: ThreadPool performance you can see

    We've spent a lot of time touting improvements to the .NET Framework in .NET 4 around threading, including core enhancements to the performance of the runtime itself. Sometimes data is more powerful than words, however, and it's useful to be able to see exactly what kind of difference such improvements...
  • Blog Post: ParallelExtensionsExtras Tour - #7 - Additional TaskSchedulers

    (The full set of ParallelExtensionsExtras Tour posts is available here .) In our last two ParallelExtensionsExtras blog tour posts, we’ve discussed two TaskScheduler implementations in ParallelExtensionsExtras : StaTaskScheduler and ConcurrentExclusiveInterleave. These are just 2 of more than...
  • Blog Post: PDC09 Parallelism Session Videos Now Available

    Attendees at PDC09 this past week were privy to quite a few sessions on parallel computing.  Now that the videos of these sessions are online, you can view them as well from the comfort of your own home.  Here are some of the key parallelism-related sessions from this past week: Overview The...
  • Blog Post: Slides from Parallelism Tour

    Last week, I had the privilege of touring around Tennessee, Kentucky, Ohio, and Michigan, speaking about the new parallel computing support in Visual Studio 2010 and the .NET Framework 4. Many folks I spoke with were interested in getting a copy of the slide deck I used, so I’ve attached it to this blog...
  • Blog Post: Task.Wait and “Inlining”

    “What does Task.Wait do?” Simple question, right?  At a high-level, yes, the method achieves what its name implies, preventing the current thread from making forward progress past the call to Wait until the target Task has completed, one way or another.  If the Task ran to completion, Wait...
  • Blog Post: TaskScheduler.FromCurrentSynchronizationContext

    The Task abstractions in .NET 4 run on instances of the TaskScheduler class.  Two implementations of TaskScheduler ship as part of the .NET Framework 4.  The first is the default scheduler, which is integrated with the .NET 4 ThreadPool and takes advantage of its work-stealing queues. ...
  • Blog Post: TaskCreationOptions.PreferFairness

    One of the ways in which the Task Parallel Library achieves good performance is through “work-stealing”.  Work-stealing is supported in the .NET 4 ThreadPool for access through the Task Parallel Library and its default scheduler.  This manifests as every thread in the ThreadPool having its...
  • Blog Post: Tasks and Unhandled Exceptions

    Prior to the .NET Framework 2.0, unhandled exceptions were largely ignored by the runtime.  For example, if a work item queued to the ThreadPool threw an exception that went unhandled by that work item, the ThreadPool would eat that exception and continue on its merry way.  Similarly, if a...
  • Blog Post: Concurrent, Multi-core Programming on Windows and .NET

    Thanks to everyone who attended our PDC pre-conference session yesterday on parallelism and concurrency! We had a wonderful turnout at the event, and David, Joe, and I all had a terrific time. Attached to this post are the slides we presented. (It turns out that the PDC site does allow you to submit...
  • Blog Post: Q&As from the 2008 Financial Services Developer Conference

    A few weeks ago, I presented on Parallel Extensions to the .NET Framework at the 6th annual Microsoft Financial Services Developer Conference (the decks from the conference are now available online ). I had a great time and a great audience, and during the presentation on Thursday I received some good...
  • Blog Post: Wrapping an APM implementation with Future<T>

    In a previous post, I talked about implementing the Asynchronous Programming Model pattern using Future<T> from Parallel Extensions to the .NET Framework . It's also possible to go in the opposite direction, to create a Future<T> from an existing APM implementation. As has been shown in previous...
  • Blog Post: Ordering the output of parallel computations

    Frequently when attempting to do multiple operations in parallel, ordering becomes an issue. Consider an application where I'm rendering and writing out to a video file frames of a movie: for ( int i = 0; i < numberOfFrames; i++) { var frame = GenerateFrame(i); WriteToMovie(frame); } For...
  • Blog Post: Custom parallel looping constructs

    For those of you that have examined the internals of the Task Parallel Library in our December '07 CTP release, you've likely noticed that the methods on the System.Threading.Parallel type are implemented on top of System.Threading.Tasks.Task type, and that they do so taking advantage of Task's self...
  • Blog Post: Task Parallel Library on Channel 9

    Charles from Channel 9 sat down with several of us from the Parallel Computing Platform team to discuss the Task Parallel Library component of Parallel Extensions. A video of the conversation is now available on Channel9: http://channel9.msdn.com/Showpost.aspx?postid=384229 . We hope you like it, and...
  • Blog Post: Recursion and Concurrency

    When teaching recursion in an introductory computer science course, one of the most common examples used involves a tree data structure. Trees are useful in this regard as they are simple and recursive in nature, with a tree's children also being trees, and allow for teaching different kinds of traversals...
Page 1 of 1 (17 items)