首页 > 解决方案 > c#异步等待任务:不能等待'void'

问题描述

我一直在为一个项目使用 Xabe.FFmpeg。任务、异步和等待对我来说是新的,但我一直在学习。我尝试使用 Xabe.FFmpeg 进行基本转换。我收到一条错误消息,提示“无法等待'void'”。

public partial class FormMain : Form
{
    public FormMain()
    {
        InitializeComponent();
    }

    private void FormMain_Load(object sender, EventArgs e)
    {
        Run().GetAwaiter().GetResult();
    }

    private static async Task Run()
    {
        string inputFileName = @"C:\Users\npsie\Videos\Sample.mkv";
        string outputFileName = Path.ChangeExtension(inputFileName, ".mp4");
        await FFmpeg.FFmpeg.Conversions.FromSnippet.ToMp4(inputFileName, outputFileName).Start();
    }
}

标签: c#async-await

解决方案


您正在尝试await调用返回.Start()的. 删除该调用并等待返回的自身:TaskToMp4()Start()Task

await FFmpeg.FFmpeg.Conversions.FromSnippet.ToMp4(inputFileName, outputFileName);

推荐阅读