我想监视ASP.NET MVC5应用程序的CPU性能,并且用户可以选择他们想要监视的PC。 我使用SignalR监视实时CPU性能。 它对于第一个CPU来说效果很好,问题是一旦用户选择了另一台受监控的PC,将会创建另一个新的任务this link,以便前一个任务和新任务都将其数据发送到客户端图表。每次调用Signalr Hub类时都继续运行一个任务
什么是处理我的问题的解决方案,以便一旦用户更改PC相应PC的数据将发送到客户端聊天或者我需要更改我的代码,以便只有第一个当前任务可以继续发送数据。
我真的很感激任何帮助。
这里是我的代码被称为每当用户选择的任何PC:
public class MonitorHub : Hub
{
CancellationTokenSource wtoken;
public MonitorHub()
{
wtoken = new CancellationTokenSource();
}
public void StartCounterCollection(string pcName)
{
var unitOfWork = new CMS.Data.UnitOfWork();
var task = Task.Factory.StartNew(async() =>
{
var perfService = new PerfCounterService();
// await FooAsync(perfService, ref pcName);
while (true)
{
var result = perfService.GetResult(pcName);
Clients.All.newCounter(result);
await Task.Delay(2000, wtoken.Token);
}
}
, wtoken.Token);
}
您还没有包括你参考.. – stuartd
感谢链接,我固定它。 – Alex