Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中从main调用异步函数#_C#_Async Await - Fatal编程技术网

C# 在C中从main调用异步函数#

C# 在C中从main调用异步函数#,c#,async-await,C#,Async Await,我正试着用C#对async wait进行思考。我已经编写了这个小的windows控制台应用程序,它有两个文件 Downloader.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace AsyncAwait { public class

我正试着用C#对
async wait
进行思考。我已经编写了这个小的windows控制台应用程序,它有两个文件

Downloader.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace AsyncAwait
{
    public class Downloader
    {

        public async Task DownloadFilesAsync()
        {
            // In the Real World, we would actually do something...
            // For this example, we're just going to print file 0, file 1.
            await DownloadFile0();
            await DownloadFile1();
        }
        public async Task DownloadFile0()
        {
            Console.WriteLine("Downloading File 0");
            await Task.Delay(100);
        }

        public async Task DownloadFile1()
        {
            Console.WriteLine("Downloading File 1");
            await Task.Delay(100);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AsyncAwait
{
    class Program
    {
        static void Main(string[] args)
        {
            Downloader d = new Downloader();

        }
    }
}
Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace AsyncAwait
{
    public class Downloader
    {

        public async Task DownloadFilesAsync()
        {
            // In the Real World, we would actually do something...
            // For this example, we're just going to print file 0, file 1.
            await DownloadFile0();
            await DownloadFile1();
        }
        public async Task DownloadFile0()
        {
            Console.WriteLine("Downloading File 0");
            await Task.Delay(100);
        }

        public async Task DownloadFile1()
        {
            Console.WriteLine("Downloading File 1");
            await Task.Delay(100);
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AsyncAwait
{
    class Program
    {
        static void Main(string[] args)
        {
            Downloader d = new Downloader();

        }
    }
}
我只想从我的
main
调用函数
downloadFileAsync()
。我已经创建了
下载程序
对象“d”。但是,由于它是main,并且返回类型必须为void,所以不可能。这有什么办法

 Task.Run(async () => { await d.DownloadFilesAsync();}).Wait();