在构造函数中使用任务(TPL)

时间:2016-03-29 08:16:58

标签: c# .net static singleton task

知道为什么在控制台中没有打印任何内容?

我的研究让我相信我们无法在静态构造函数中启动任务,但下面的示例甚至没有静态构造函数。

我添加private static readonly Foo instance = new Foo();的原因是因为我需要实现单例模式。代码是单例模式的不完整实现。为了便于阅读,我删除了代码。

class Program
{
    static void Main(string[] args)
    {
        Foo t = new Foo();
        Console.WriteLine("Program finished");
        Console.Read();
    }
}

public class Foo
{
    private static readonly Foo instance = new Foo();

    public Foo()
    {
        Random rnd = new Random();        
        Task t = Task.Factory.StartNew(() =>
            {
                int r = rnd.Next();
                Bar(r);
            });
        Task.WaitAll(t);

        Console.WriteLine("Foo finished");
    }

    static void Bar(int value)
    {
        Console.WriteLine(value);
    }
}

0 个答案:

没有答案