C# 获取错误CS1503:“;参数1:无法从';系统诊断、性能计数器和x27;至';int';
我正在VSCode上用WPF编写一个基于UI的应用程序。我试图让硬件性能规格更新UI上的标签,但当我试图将CPU总使用量从PerformanceCounter移交给BackgroundWorker,以便它可以在单独的线程中相应地更新UI时,遇到了错误 下面是我打算显示硬件统计信息的窗口后面的代码 Monitor.xaml.csC# 获取错误CS1503:“;参数1:无法从';系统诊断、性能计数器和x27;至';int';,c#,wpf,visual-studio-code,C#,Wpf,Visual Studio Code,我正在VSCode上用WPF编写一个基于UI的应用程序。我试图让硬件性能规格更新UI上的标签,但当我试图将CPU总使用量从PerformanceCounter移交给BackgroundWorker,以便它可以在单独的线程中相应地更新UI时,遇到了错误 下面是我打算显示硬件统计信息的窗口后面的代码 Monitor.xaml.cs public partial class Hostile_Monitor : Window { readonly BackgroundWorker
public partial class Hostile_Monitor : Window
{
readonly BackgroundWorker bgWorker = new BackgroundWorker();
PerformanceCounter PerfCPUCounter = new PerformanceCounter("Processor Information", "% Processor Time", "_Total");
PerformanceCounter PerfCPUFreqCounter = new PerformanceCounter("Processor Information", "Processor Frequency", "_Total");
PerformanceCounter PerfMemCounter = new PerformanceCounter("Memory", "Available MBytes");
public Hostile_Monitor()
{
InitializeComponent();
//Create Backgroundwroker Object
bgWorker = new BackgroundWorker();
//Add DoWork EventHandler
bgWorker.DoWork += BackgroundWorker1_DoWork;
//Progress changed EventHandler
bgWorker.ProgressChanged += BackgroundWorker1_ProgressChanged;
//RunWorkerCompleted EventHandler
//bgWorker.RunWorkerCompleted += BackgroundWorker1_RunWorkerCompleted;
//Allow to be cancelled
bgWorker.WorkerSupportsCancellation = true;
//allow to report progress
bgWorker.WorkerReportsProgress = true;
private void BackgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 1; i > 0; i++)
{
Console.WriteLine(i);
bgWorker.ReportProgress(PerfCPUCounter); // This line is where the error occurs @->(PerfCPUCounter);
System.Threading.Thread.Sleep(500);
if (bgWorker.CancellationPending)
{
Console.WriteLine("Thread is exiting...");
break;
}
}
}
private void BackgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.Label1.Content = e.ProgressPercentage;
private void ButtonPower_Click(object sender, RoutedEventArgs e)
{
if (bgWorker.IsBusy)
{
bgWorker.RunWorkerAsync();
ButtonPower.Content = "Stop Monitor";
} else
{
bgWorker.CancelAsync();
ButtonPower.Content = "Start Monitor";
}
这是我第一次尝试开发桌面应用程序,因此任何提示都将不胜感激
希望我包含了所有必要的代码,让你们了解正在发生的事情试试下面这个:
bgWorker.ReportProgress((int)Math.Round( PerfCPUCounter.NextValue()))
我尝试实现您的修复程序,但它在同一位置抛出了另一个错误(inti=1;I>0;I++){Console.WriteLine(I);bgWorker.ReportProgress(PerfCPUCounter.NextValue());//错误在这里持续@->(PerfCPUCounter.NextValue())@HostileOperator我更新了我的答案,请再试一次。这解决了我遇到的错误,谢谢!我感谢你的帮助!现在来了解如何使用统计信息更新标签!