Language Support for Asynchronous Programming

Download this episode

Download Video

Description

Asynchronous programming is what the doctor usually orders for unresponsive client apps and for services with thread-scaling issues. This usually means a bleak departure from the imperative programming constructs we know and love into a spaghetti hell of callbacks and signups. C# and VB are putting an end to that, reinstating all your tried-and-true control structures on top of a future-based model of asynchrony.

For more information, check out this course on Microsoft Virtual Academy:

Tags:

C#, Async, VB

Day:

2

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image
      AceHack

      I'm glad to see so many questions about async\await.  Hopefully a similar pattern will show up in other languages... hint, hint, C++ Smiley  Keep up the amazing work!!!

    • User profile image
      broersa

      And it even works on the latest mono
      http://blog.bekijkhet.com/net-4-5-new-async-library-on-visual-studio-11-beta-and-latest-mono/

    • User profile image
      Rubio

      Is the source code for that sample app available anywhere?

    • User profile image
      milgner

      @AceHack: it is possible to wait for the result of an asynchronous operation in C++ using PPL tasks.

      It may need conversion from IAsyncOperation<> to a Concurrency::task<> and then you can use Concurrency::task<>::get() to comfortably achieve the same thing as await.

      auto classificationOp = runClassification(result->docText, result->lang);
      task<Platform::String^>classificationTask(classificationOp);
      Platform::String^ classification = classificationTask.get();

    • User profile image
      AceHack

      @milgner I think this would be a blocking wait and it think it will only work in Metro style apps.  I was really hoping for a await language feature in C++ that would do the auto continuation (state machine) kind of thing like C# (Non Blocking).  Herb mentioned having this language feature possibly in the future with his talk here http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/-Not-Your-Father-s-C-

      It took a while for that video to go up so I was completely unaware that Herb was already thinking about await as a C++ language extension or I would not have mentioned it again.  Thanks all language guys at Lang.Next, I've been very impressed.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.