是否可以创建与其前身相同的泛型类型的任务延续?

时间:2017-09-05 11:44:59

标签: c#

    [Test]
    public void TaskContinuationIsNotOfTheSameGenericType()
    {
        var t = Task.Run(() => new Box{Name = "bar"});

        var async = t as Task;

        var nt = async.ContinueWith(n =>
        {
            dynamic tmp = n;
            return tmp.Result;
        });

        nt.Wait();

        Console.WriteLine(nt.Result);
        Console.WriteLine(nt.GetType().GetGenericArguments()[0].FullName);
        Console.WriteLine(t.GetType().GetGenericArguments()[0].FullName);
    }

    public class Box
    {
        public string Name { get; set; }

        public override string ToString()
        {
            return Name;
        }
    }

输出:

bar
System.Object
TestingStuff.Tasks.Continuations+Box

是否可以创建与基本类型相同类型的任务延续?例如:如果基类型是" int的任务" ,是否有可能通常创建基类型的延续,这也是" int的任务"?

注意:

上面的代码只是一个例子,我不知道基本任务的特定泛型类型。

0 个答案:

没有答案