<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/ch9/ff65/b1c88fdb-88a8-40d4-b873-9e1a013eff65/LucianWischikVBNetAsyncDeepDive_100_ch9.jpg</url>
		<title>Channel 9 - Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<link></link>
	</image>
	<description> Lucian Wischik digs into the new VB functions and iterators being developed for asynchronous development. You can get an early look at these new features, available as the&amp;nbsp;Async CTP, today! Give VB.NETAsync a try. In this whiteboard-heavy conversation, Lucian demonstrates how to&amp;nbsp;make custom awaitable types and provides deep insights into the mechanics behind and inside Async. Enjoy and please play with the CTP! The team is eager for your feedback. </description>
	<link></link>
	<language>en</language>
	<pubDate>Tue, 21 May 2013 12:21:29 GMT</pubDate>
	<lastBuildDate>Tue, 21 May 2013 12:21:29 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[ <p>VB iterators, Async&nbsp;-&nbsp; MANY MANY thanks.</p><p>Method instances - WONDERFUL.&nbsp; That so much more matches how we think about it anyway without the redundant pain.</p><p>posted by davewill</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634239553440000000</link>
		<pubDate>Fri, 29 Oct 2010 13:22:24 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634239553440000000</guid>
		<dc:creator>davewill</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[ <p>DAMN YOU Wischik!!! <em>(wraith of khan stylee)</em></p><p>By implementing VB Iterators, what will us <del>VB.nutters</del> VB.netters berate Microsoft&nbsp;</p><p>with now.</p><p>mmm. </p><p>Yes <del>Unsafe?</del> No </p><p>I think&nbsp;Extension Custom Operators would be interesting.</p><p>These custom operator have no precedence, so you need to use ( &nbsp;)'s accomplish it.</p><p><pre class="brush: vb">Public  Operators   Ops_Double

' A Simple one Roots.'

&lt;Extension()&gt;
Public Operator /¯ (ByVal x As Double, ByVal y As Double) As Double


' Inside here the usage of /¯  is an Error '
' Error is Infinite Recursion '


If x =0 Then Throw New AttemptToDivideByZero()
Return  y^(1/x)
End Operator

End Operators</pre></p><p>Notice the Public Operators code block, it just like a Sub but it isn't automatic imported into the namespace, you have do this explicitly.&nbsp;To enable the coder to override the built-in operator (ie a new language ones.), they would have to specify a &quot;in this context&quot; keywords.&nbsp;</p><p>Using Operator From { Ops_Double}</p><p>which can be nested with one another.</p><p><pre class="brush: vb">Using Operator From {namespace}

Dim r as Double = 3 /¯ 27

' r = 3  ( The cube root )'

End Using </pre></p><p>Add 2 new keywords&nbsp;Operator &amp; Operators.&nbsp;</p><p>Mmm Async Operators?&nbsp;</p><p>I know it takes vb.net into a rather strange world where the some of grammar is user-defined, but I strongly believe it would be useful and beneficial.&nbsp;</p><p>May be a concept proto-type language VB# &nbsp;(VB's &nbsp; c-omega).</p><p>&nbsp;</p><p>I&nbsp;digress, congratulations and thank-you.&nbsp;</p><p>-Adam</p><p>P.S. I thought it was Godel?</p><p>posted by AdamSpeight2008</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634240854600000000</link>
		<pubDate>Sun, 31 Oct 2010 01:31:00 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634240854600000000</guid>
		<dc:creator>AdamSpeight2008</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[ <p>This is a stellar going deep! Lucian is a great presenter.</p><p>It would be nice to have the same symmetry of design between asyncs and iterators in C# as exists in VB although performance is already an issue for iterators for some scenarios where it doesn't scale.</p><p>Also, I wonder how this new design will interact with proposals for making iterators more scalable; e.g. see <a href="http://wesnerm.blogs.com/net_undocumented/2006/03/recursive_itera.html">this great post</a> by Wesner Moise on the topic.</p><p>So design and interaction with compiler optimization is an interesting topic because when a feature is composable the next logical question must be: is it scalable. Can I take it to the extreme.</p><p>Performance woes aside, asyncs and iterators are superb features.</p><p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634246449110000000</link>
		<pubDate>Sat, 06 Nov 2010 12:55:11 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634246449110000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[ <p><blockquote><div class="quoteText"></p><p><a class="permalink" title="Comment Permalink" href="/Shows/Going&#43;Deep/Lucian-Wischik-Inside-VBNET-Async/Unlock?commentSlug=634246449110000000">8 hours&nbsp;ago</a>, <a href="/Niners/exoteric">exoteric</a> wrote</p><p>This is a stellar going deep! Lucian is a great presenter.</p><p></div></blockquote></p><p>Agreed. I'd like to get Lucian on C9 again. He's super bright and articuate!</p><p>C</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634246747000000000</link>
		<pubDate>Sat, 06 Nov 2010 21:11:40 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634246747000000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[ <p>I agree we need more Lucian.&nbsp;</p><p>Possible one of the most useful benefits of having Iterators.</p><p><pre class="brush: vb">  &lt;Runtime.CompilerServices.Extension()&gt;
  Public Iterator Function AsEnumerable(ByVal f As IEnumerator) As IEnumerable
    f.Reset()
    While f.MoveNext
      Yield f.Current
    End While
    f.Reset()
  End Function</pre></p><p>posted by AdamSpeight2008</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634248479510000000</link>
		<pubDate>Mon, 08 Nov 2010 21:19:11 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634248479510000000</guid>
		<dc:creator>AdamSpeight2008</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[@AdamSpeight2008:<br />Kinda dangerous. Reset is might throw on some implementations.<p>posted by Rafael</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634249143580000000</link>
		<pubDate>Tue, 09 Nov 2010 15:45:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634249143580000000</guid>
		<dc:creator>Rafael</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[ <p>I really liked the last question, because I have run into small problems with it.</p><p>It was actually Silverlight C# code and it went something like this...</p><p>I had I SaveFileDialog and a method, that used a StreamWriter passed to an async method</p><p><pre class="brush: csharp">using (var writer = StreamWriter(dialog.OpenFile()))
{
  WriteResults(writer, dialog.FilterIndex)
}

async void WriteResults(StreamWriter writer, int whatToExport)
{
  if (whatToExport is something that isn't computed)
  {
     await TaskEx.Run(() =&gt; Compute(...))
  }

  // write the result here
  // Raises an exception, that the stream is closed
}</pre></p><p>This was definitely some behavior I was not expecting. But of course when I think about it, it makes perfect sense that it happened.&nbsp;</p><p>Now, originally the method WriteResults only wrote the results and later came the need to compute additional values before the actual export. So I kinda artificially extended the WriteResults method using Async because the computation could take several seconds and later I wanted to add a progress bar and cool stuff like this. I admit it was a bad &quot;design&quot; decision to do it this way (like I should open the file after the results are available).&nbsp;Nevertheless, it also means that there are some hidden pitfalls when using Async and one should be careful where it's being used.</p><p>So my suggestion is this: would it be possible to add a compiler warning if constructs like</p><p><pre class="brush: text">using (var x = ...)
{
  SomeAsyncMethod(x);
}</pre></p><p>are used?</p><p>posted by Kyrae</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634249259130000000</link>
		<pubDate>Tue, 09 Nov 2010 18:58:33 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634249259130000000</guid>
		<dc:creator>Kyrae</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[Lucian was excellent!!! I&nbsp;didn't&nbsp;get lost in translation LOL!!! He is so right about that everyone has the misconception of Async = background process<br />Great job&nbsp;Lucian !!<br />&nbsp;<br />&nbsp;<p>posted by Michael Evans</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634316687200000000</link>
		<pubDate>Wed, 26 Jan 2011 19:58:40 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634316687200000000</guid>
		<dc:creator>Michael Evans</dc:creator>
	</item>
	<item>
		<title>Re: Lucian Wischik: Inside VB.NET Async and Customizing Awaitable Types</title>
		<description>
			<![CDATA[ <p>Lucian kicks * !&nbsp;&lt;a href=”<a href="http://www.etigararunway.ro&quot;>tigara electronica&lt;/a> ">http&#58;&#47;&#47;www.etigararunway.ro&#34;&#62;tigara&#160;electronica&#60;&#47;a&#62;&#160;</a></p><p>posted by TigaraElectronica</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634347703600000000</link>
		<pubDate>Thu, 03 Mar 2011 17:32:40 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Lucian-Wischik-Inside-VBNET-Async#c634347703600000000</guid>
		<dc:creator>TigaraElectronica</dc:creator>
	</item>
</channel>
</rss>