Welcome to MSDN Blogs Sign in | Join | Help

jaredpar's WebLog

Code, rants and ramblings of a programmer.

Syndication

News

Now Reading

Pragmatic Programmer

Pragmatic programming at it's best. The book is a light read and worth the time

Essential WPF

Thus far the best book I've read on WPF. Gets right down to working with WPF and the goals/history.

Purely Functional Data Structures

Reading this book makes me feel like I'm back in college. It will really get your mind going and is best read with a whiteboard handy.


February 2008 - Posts

SynchronizationContext and Higher Order Functions
It's often useful to ensure that actions occur on specific threads, in particular event handlers.  Take Windows Forms for instance where all operations on a Control must occur on the thread it was created on.  Typically this is not a problem Read More...

Posted Sunday, February 24, 2008 4:42 AM by Jared Parsons | 1 Comments

Factory Methods for Futures
Like most generic classes, I prefer to create Future instances through static factory methods which allows me to take maximum advantage of type inference. In addition to the 2 straight forward declaration of Func<T> and Action, the methods will Read More...

Posted Saturday, February 23, 2008 8:35 PM by Jared Parsons | 1 Comments

Filed under: , ,

Thread Affinity
Part of creating a multithreading program is understanding which threads objects live on.  Seems simple enough and typically is.  However it's nice to insert guarantees to match the design. One type of threading model is for objects or subsets Read More...

Posted Friday, February 22, 2008 8:55 PM by Jared Parsons | 1 Comments

Filed under: ,

Multiple paths to IUnknown
ATL has a lot of great tools for COM programming and CComPtr is a good example. It's a smart pointer class which manages the reference count of an underlying COM object. One of it's limitations though is it will only work properly when the inheritance Read More...

Posted Friday, February 22, 2008 1:21 AM by Jared Parsons | 0 Comments

Filed under: , ,

Building a Future which returns no Value
In addition to Future<T> there is also the concept of Futures that don't return any values.  Instead the perform the operation and return.  Because there is no additional data to pass between the threads building an Empty Future is fairly Read More...

Posted Monday, February 18, 2008 4:15 PM by Jared Parsons | 1 Comments

Filed under: , , ,

Building Future<T>
The last post dealt with building the base Future class.  Now we'll build the child class used to run Func<TResult> 's.  The basic implementation is straight forward.  The class will run a delegate typed to Func<TResult> in Read More...

Posted Wednesday, February 13, 2008 10:16 AM by Jared Parsons | 4 Comments

Filed under: , ,

Building the Base Future
In the end there are two basic types of Future implementations you can use. Futures which return no values Futures which return a value The rest of the behavior and shape of the Future is the same and screams for a pattern of sorts.  I've found the Read More...

Posted Tuesday, February 12, 2008 10:48 AM by Jared Parsons | 5 Comments

Filed under: , ,

Dealing with Exceptions in a Future
Besides waiting, the another important issue when dealing with Futures is how to deal with exceptions thrown by the user specified code.  Option 1: Ignore the Exception Don't take any actions in the future code and force users to write exception Read More...

Posted Monday, February 11, 2008 11:36 AM by Jared Parsons | 7 Comments

Filed under: , ,

Push Enumerators
If you read Jon Skeet's blog you'll notice he's been playing around lately with "push" style enumerators. Push enumerators are the concept of "we'll tell you when we're ready". This is different from IEnumerator<T> which is more of a pull; "ask Read More...

Posted Tuesday, February 05, 2008 12:26 PM by Jared Parsons | 1 Comments

Filed under: , ,

The first part of building a Future is ... Waiting
Future's are a great abstraction for asynchronous programming. One of the items making them so good is the easy manner in which you can declare one and wait for it to finish. The idea is to allow for many futures to be declared with as little overhead Read More...

Posted Monday, February 04, 2008 7:04 AM by Jared Parsons | 2 Comments

Filed under: , ,

Get-Content and File Names
Another day, another PowerShell feature discovered.  Unfortunately this time it was a feature that made me think I had a bug in my script.  The script read through some directories, did some file parsing and created a data object for every directory Read More...

Posted Saturday, February 02, 2008 1:55 PM by Jared Parsons | 1 Comments

Filed under: ,

Page view tracker