linux-packaging-mono/mcs/tests/test-async-26.cs
Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

36 lines
680 B
C#

// Compiler options: -langversion:future
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
public static Task<TResult> Run<TResult> (Func<Task<TResult>> function)
{
var t = Task<Task<TResult>>.Factory.StartNew (function);
return GetTaskResult (t);
}
async static Task<TResult> GetTaskResult<TResult> (Task<Task<TResult>> task)
{
return await task.Result;
}
public static int Main ()
{
var t2 = Run (() => Task<int>.Factory.StartNew (() => 5));
if (!t2.Wait (1000)) {
Console.WriteLine (t2.Status);
return 1;
}
Console.WriteLine ("ok");
return 0;
}
}
}