Browse by Tags
All Tags »
TAP (
RSS)
The 3rd day of the SDP was over and I want to thanks all the attendants. my yesterday session was about C# 5 async and await . today I will have a full day tutorial on Rx and TPL Dataflow . you can download the demo code and also the presentation for second and third days from here (the link is also having the demo code for today's sessions). anyway, I also want to recommend 2of yesterday session. if you were attend at the conference you should have an access to the sessions video page. first...
Async / Await for .NET 4, Silverlight and Windows Phone if you have to target .NET 4, Silverlight and Windows Phone and still want to use the async / await pattern. the BCL team provide you with a new NuGet package named Microsoft.Bcl.Async . this package was announced as stable a few week ago. so you can check it out if you're having VS 2012 but should target one of the above platforms. be aware that this package won't work with 2010.
EF 6: Async this post is the first in a series about what's new in EF 6 . great improvements are about to come with Entity Framework 6 . it is a major release and the first one since EF become an open source. each post in the series will be dedicate to a single feature. this post will focus on a new EF a-sync features. the first question that should be asked is, why do we need parallel data access ? moreover why do we need a dedicate parallel data access API , rather then using the TPL Task.Run...
Async and AggregateException this post is a complementary to Eran Stiller's post . I was reading Eran Stiller's post about exception handling using async methods and I want to add a few side notes. 1) the exception handling behavior decisions is well documented in this post (by the TPL team), it decided after they had consider different options. 2) I was suggesting that compiler will check whether the a catch of AggregateException is implemented and if so to avoid the unwrapping behavior...
Tpl Dataflow TOC Part 1 Part 2 : ITargetBlock Part 3 : ISourceBlock Part 4 : Block structure Part 5 : walkthrough
Will it crash my process here is a short question, it was taken from a real life bug that occurs at one of my customers . will the following code crash the process? Code Snippet List < object > items = new List < object >(); try { Parallel .For(0, 10000000, t => { items.Add( "1" ); }); } catch ( AggregateException ex) { } it is a non thread safe code that should throw an IndexOutOfRangeException. but it wouldn't crash the process, but what about the following code? Code...
Async - Handling multiple Exceptions the SDP conference was ended a few week ago and I finally find a time to write some comments. It was a very successful conference, the feedback and evaluations, of most sessions scored higher than 4.5, some well-over it. For example, one workshop had a perfect 5 / 5 score , and two other workshops scored 4.92 / 5 and 4.9 / 5. The highest score for a breakout session was 9.39 / 10, which is the highest score we’ve seen to date. my score was 4.90 / 5 . but this...
Sela conferences (SDP) is coming near (25-29/3/2012). you can check the following link for all the SDP's tutorials and sessions http://www.sela.co.il/s/SDP2012/index.html . I will present 2 full-day tutorials (Yaniv Rodenski will join me on the first one). the first day Introduction to the Task Parallel Library is a full TPL 4 day which will give you a solid knowledge, HowTo and Consideration about building parallel application using the TPL library. at the end of this day we will...
Parallel.ForEach behavior this post is a direct continuation for the previous post about " Real-life story: Blocking Collection ". (Real-life story: Blocking Collection).ContinueWith (t => this post); or await (Real-life story: Blocking Collection); this post; my colleague Bram Veldhoen has suggest to demonstrate the behavior of the Parallel.ForEach thread's hunger in more pure fashion which doesn't include BlockingCollection<T> or any other high level Enumerable. the following...
Real-life story: Blocking Collection this post will discuss a real-life story which uncover none trivial (yet logical) behavior which related to Parallel.ForEach and BlockingCollection<T> . I will explain why it happens and what how can we handle it right. it all start when Guy Eden from ITG has found that the following code seem to leak memory : Code Snippet private static void Main() { var bc = new BlockingCollection < int >(); Task .Factory.StartNew(() => Parallel .ForEach(bc.GetConsumingEnumerable...
Tpl Dataflow walkthrough - Part 5 this post is a complete walkthrough of a web crawler sample that was build purely by using Tpl Dataflow . it was built on .NET 4.5 / C# 5 (on a virtual machine using VS 11 ). I will analyze each part of this sample, both by discussing the Dataflow blocks and the patterns in used. the sample code is available in here (it is a VS 11 project). during the walkthrough you will see the following Tpl Dataflow blocks: TransformBlock TransformManyBlock ActionBlock BroadcastBlock...
async / await, some reasoning this post will try to make some reasoning about the .NET 4.5 / C#5 await keyword. I will begin with a quiz. how long will it take to the following method to produce the 42 value? Code Snippet async Task < int > Execute() { await Task .Delay(1000); await Task .Delay(1000); return 42; } you should remember that conceptually the await keyword will translate to a continuation . the above code can be compare to the following TPL 4 code snippet: Code Snippet Task <...
the concept of async \ await in this post I will survey the new .NET 4.5 / C# 5 concept of async / await. I will focus on how to understand what is really happens behind the new async / await syntax. What's it all about? the new async / await syntax is using the C# syntactic compiler to generate async operation from code that is looking very much like a synchronous code. but before we start we should discus the new C# 5 syntax. the syntax include 2 keywords: async - which is only a marker...
TPL - Continuation this post will discuss TPL Continuation . TPL continuation can chain task into a pipeline . when dealing with dependencies between parallel work units, like [encoding -> compression -> encryption], continuation is the API for scheduling work unit upon completion of other work unit. the general idea is quit similar to the old APM pattern ( BeginXxx, EndXxx ) callback. basic completion the syntax of continuation: Code Snippet Task tsk = Task .Factory.StartNew(() => { /*...
Tpl Dataflow ( IDataflowBlock ) - Part 5 the previous post discus the concept ITargetBlock and ISourceBlock , which is the TDF consumer/Producer contract. you can find all the post in this series under the TDF tag. this post focus on the IDataflowBlock contract which is the life-time management contract for all data-flow's blocks. the IDataflowBlock define single property and 2 methods: Code Snippet public interface IDataflowBlock { Task Completion { get ; } void Complete(); void Fault( Exception...
More Posts
Next page »