如何在c#中的静态类中创建一个简单的回调

时间:2017-06-07 19:56:53

标签: c# callback portable-class-library static-classes

我有一个静态类,它有一个方法再次调用另外两个静态类方法

基本上在第一个静态类中,我想知道一旦在另外两个静态类中完成操作

 public static class FirstClass{

    public static async System.Threading.Tasks.Task FirstClassMethod() 
        {
            SecondClass. SecondClassMethod();
            ThirdClass. ThirdClassMethod();
        }
 }

 public static class SecondClass{

    public static async System.Threading.Tasks.Task SecondClassMethod() 
        {

        }
 }

 public static class ThirdClass{

    public static async System.Threading.Tasks.Task ThirdClassMethod() 
        {

        }
 }

非常感谢任何有关解决我的问题的帮助

2 个答案:

答案 0 :(得分:2)

使用Task.WhenAll,您可以创建一个包装多个任务的单个任务,并在完成所有包装任务后完成。

 public static class FirstClass{

    public static async System.Threading.Tasks.Task FirstClassMethod() 
        {
            return await Task.WhenAll(
                SecondClass.SecondClassMethod(),
                ThirdClass.ThirdClassMethod()
            );
        }
 }

 public static class SecondClass{

    public static async System.Threading.Tasks.Task SecondClassMethod() 
        {

        }
 }

 public static class ThirdClass{

    public static async System.Threading.Tasks.Task ThirdClassMethod() 
        {

        }
 }

答案 1 :(得分:1)

使用await关键字等待Task完成。

using System.Threading.Tasks;

public static async Task FirstClassMethod() 
{
    await SecondClass. SecondClassMethod();
    await ThirdClass. ThirdClassMethod();
    ...
}

顺便说一句:

  

只有当您确定不想等待异步调用完成并且被调用的方法不会引发任何异常时,才应考虑不使用await。