怎么让cpu占用率实时显示在progressbar

c#怎么让cpu占用率实时显示在progressbar
读取的代码能读,但是实时显示有问题
帮忙回答下呗

你说能读,俺们就不管了读的了,只管负责显示

  private void Form1_Load(object sender, EventArgs e)
        {

            Progress<int> progress = new Progress<int>();
            progress.ProgressChanged += Progress_ProgressChanged;
            //获取一般是个线程,task,或者是啥timer,这个我们不管
            //现在我就假定是个task,一秒刷一次
            getcpu(progress, SynchronizationContext.Current);

        }

        private void Progress_ProgressChanged(object sender, int e)
        {

            this.progressBar1.Value = e;
        }

        async Task getcpu(IProgress<int> progress, SynchronizationContext SyncContext, CancellationToken cancellationToken = default)
        {
            //你怎么获取cpu我不管了,我这里就随机好了
            Random rad = new Random(DateTime.Now.Millisecond);
            while (!cancellationToken.CanBeCanceled)
            {
                cancellationToken.ThrowIfCancellationRequested();

                int value = rad.Next(1, 100);
                SyncContext.Post(p =>
                {
                    progress.Report((int)p);
                }, value);


                await Task.Delay(TimeSpan.FromSeconds(1));
            }
        }