[Mono-dev] Task class usage problem
Jérémie Laval
jeremie.laval at gmail.com
Mon Mar 21 08:32:23 EDT 2011
Actually it's ok, fixed on master and will backport to mono-2-10
--
Jérémie Laval
http://neteril.org
2011/3/21 Jérémie Laval <jeremie.laval at gmail.com>
> Hello,
>
> This is a bug in our implementation. Could you fill a bug please?
>
> --
> Jérémie Laval
> http://neteril.org
>
> On Mon, Mar 21, 2011 at 11:37 AM, vart <artemyv at gmail.com> wrote:
>
>> I'm compiling the following code on VS2010 or Monodev 2.6 for windows with
>> Net4.0 settings and get the correct output
>>
>> I compile the same code on Ubuntu/OpenSUSE using Mono 2.10 and Monodev 2.6
>> beta1 - I got not output.
>>
>> What is the problem here?
>>
>>
>> static void Main()
>> {
>>
>> var parent = Task.Factory.StartNew(() =>
>> {
>> // We’ll throw 3 exceptions at once using 3 child tasks:
>>
>> int[] numbers = { 0 };
>>
>> var childFactory = new TaskFactory
>> (TaskCreationOptions.AttachedToParent,
>> TaskContinuationOptions.None);
>>
>> childFactory.StartNew(() => 5 / numbers[0]); // Division by
>> zero
>> childFactory.StartNew(() => numbers[1]); // Index out of
>> range
>> childFactory.StartNew(() => { throw null; }); // Null
>> reference
>> });
>>
>> try { parent.Wait(); }
>> catch (AggregateException aex)
>> {
>> aex.Flatten().Handle(ex => // Note that we still need to call
>> Flatten
>> {
>> if (ex is DivideByZeroException)
>> {
>> Console.WriteLine("Divide by zero");
>> return true; // This
>> exception
>> is "handled"
>> }
>> else if (ex is IndexOutOfRangeException)
>> {
>> Console.WriteLine("Index out of range");
>> return true; // This
>> exception
>> is "handled"
>> }
>> else
>> {
>> Console.WriteLine("Other exception: " + ex.Message);
>> return true; // This
>> exception
>> is "handled"
>> }
>> //return false; // All other exceptions will get
>> rethrown
>> });
>> }
>> }
>>
>>
>> Output on Windows
>>
>> Other exception: Object reference not set to an instance of an object.
>> Divide by zero
>> Index out of range
>>
>> These line could be shown in different order depending on Task execution
>> order.
>>
>> On linux I do not get any output.
>> Same problem with several other samples using Task/TaskFactory classes
>> from
>> System.Threading.Tasks namespace
>>
>>
>>
>> --
>> View this message in context:
>> http://mono.1490590.n4.nabble.com/Task-class-usage-problem-tp3393138p3393138.html
>> Sent from the Mono - Dev mailing list archive at Nabble.com.
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20110321/266fb6f4/attachment.html
More information about the Mono-devel-list
mailing list