C# 无法确定如何获取运行异步的方法

C# 无法确定如何获取运行异步的方法,c#,C#,我试图让一个轨迹条在播放时跟随mp3。我将我的方法设置为任务,但它会在歌曲播放期间锁定我的应用程序。感谢您的帮助 public void update(TrackBar t, AudioFileReader r) { this.BeginInvoke((Action)delegate () { t.Maximum = (int) (Math.Ceiling(r.TotalTime.TotalSeconds)

我试图让一个轨迹条在播放时跟随mp3。我将我的方法设置为任务,但它会在歌曲播放期间锁定我的应用程序。感谢您的帮助

public void update(TrackBar t, AudioFileReader r)
    {
        this.BeginInvoke((Action)delegate ()
        {
            t.Maximum = (int) 
            (Math.Ceiling(r.TotalTime.TotalSeconds));
            t.Value = (int)(r.Position / 
            r.WaveFormat.AverageBytesPerSecond);

        });
    }

Task.Run(()=>update(trackBar2, audioFile));

使用此async Wait可使任务异步

public async Task updateAsync(TrackBar t, AudioFileReader r) {
     await Task.Run((()=>update(t,r));
}

public void update(TrackBar t, AudioFileReader r)
{
    this.BeginInvoke((Action)delegate ()
    {
        t.Maximum = (int) 
        (Math.Ceiling(r.TotalTime.TotalSeconds));
        t.Value = (int)(r.Position / 
        r.WaveFormat.AverageBytesPerSecond);
    });
}

updateAsync(trackBar2, audioFile);

您的音频播放器是否有任何活动-此时您应该更新TrackBar。请共享一个。首先感谢您的回复!如果您是指按钮中的事件,那么在我的播放按钮事件方法中将更新方法作为任务调用。