在结束C#任务之前等待事件解决

时间:2017-07-17 16:24:44

标签: c# events

有没有办法让任务等到任务上下文中的某种标志被触发?以此代码为例:

class SomeClass
{
    public event Action SomeEvent;

    public void triggerEventIn1Sec()
    {
        Task.Run(() =>
        {
            System.Threading.Thread.Sleep(1000);
            SomeEvent.Invoke();
        });
    }
}

class Program
{

    static void Main(string[] args)
    {
        Task mtask1 = SomeTask();
        mtask1.Wait();
        Console.WriteLine("Task1 completed");
        Console.ReadLine();
    }

    public static Task SomeTask()
    {
        return Task.Run(() => {
            var c = new SomeClass();
            c.SomeEvent += () =>
            {
                Console.WriteLine("Some Event invoked");
            };
            c.triggerEventIn1Sec();
        });
    }
}

在Main函数中等待SomeTask()函数返回的Task。在触发SomeTask任务中的事件之前完成等待。

在此任务函数中是否有指定

   return Task.Run(() => {
        var c = new SomeClass();
        c.SomeEvent += () =>
        {
            Console.WriteLine("Some Event invoked");
        };
        c.triggerEventIn1Sec();
    });

要等到“完成任务”之前触发事件?

0 个答案:

没有答案