小编use*_*160的帖子

LiveCharts WPF 实时数据慢。提高 LiveCharts 实时绘图性能

我正在研究在 WPF 应用程序中使用 LiveChart 以实时绘制温度测量值。我整理了一个简单的折线图示例,以 10Hz 读取数据,并为每个样本重新绘制。但是,我发现重绘率约为 1Hz。对于 WPF 实时图表工具来说,这似乎很慢。我的 xaml 如下:

<lvc:CartesianChart x:Name="TemperatureChart" Grid.Row="1" LegendLocation="Right" Hoverable="False" DataTooltip="{x:Null}">
    <lvc:CartesianChart.Series>
        <lvc:LineSeries x:Name="TempDataSeries" Values="{Binding TemperatureData}"></lvc:LineSeries>
    </lvc:CartesianChart.Series>
</lvc:CartesianChart>
Run Code Online (Sandbox Code Playgroud)

我的视图模型中的片段如下:

ChartValues<ObservableValue> _temperatureData = new ChartValues<ObservableValue>();

public ChartValues<ObservableValue> TemperatureData
{
    get => this._temperatureData;
    set => this._temperatureData = value;
}

void Initialise()
{
    _temperatureMonitor.Subscribe(ProcessTemperatures);
}

void TestStart()
{
    _temperatureMonitor.Start();
}
void TestStop()
{
    _temperatureMonitor.Stop();
}
void ProcessTemperatures(TemperatureData data)
{
    TemperatureData.Add(data.Temperature);
}
Run Code Online (Sandbox Code Playgroud)

我没有处理大量数据,并且测试了 100 个值的限制。我相信我的线程读取数据的开销很小,但是重绘一次大约绘制 10 个点。

我是否正确实施了绑定?我是否需要添加属性通知来强制更新?我的理解是这是由 ChartValues 处理的。

谢谢。

更新。Oxyplot 通过绑定到 DataPoints 的 ObservableCollection 产生了如下所示的所需结果。使用 …

c# wpf performance redraw livecharts

5
推荐指数
1
解决办法
3240
查看次数

如何让自托管 signalR 服务器作为 NetCore 控制台应用程序运行

我想使用 .NetCore 在控制台应用程序中创建 SignalR 自托管服务器。

我对 Web 开发和 .Net Core 完全陌生,但想使用 SignalR 作为基于实时 Web 的协议。不需要网页,所以我想要一个控制台应用程序。

我已成功测试了下面的 .Net Framework 示例,并希望使用 .Net Core 3.1 复制此示例,以便它可以在 Linux 上运行。但是我找不到任何合适的例子。

using System;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin.Hosting;
using Owin;
using Microsoft.Owin.Cors;

namespace SignalRSelfHost
{
    class Program
    {
        static void Main(string[] args)
        {
            // This will *ONLY* bind to localhost, if you want to bind to all addresses
            // use http://*:8080 to bind to all addresses. 
            // See http://msdn.microsoft.com/library/system.net.httplistener.aspx 
            // for more information.
            string url = "http://localhost:8088"; …
Run Code Online (Sandbox Code Playgroud)

self-hosting signalr asp.net-core asp.net-core-3.1

2
推荐指数
1
解决办法
5280
查看次数

Tortoise GIT 回滚到之前的提交

我正在使用 Tortoise GIT,并且想放弃最近的提交并恢复到特定的提交。

我的尝试如下。

  • 查看日志。
  • 选择要恢复到的提交。
  • 选择重置。

当我尝试推送时出现错误

[rejected]          my branch -> mybranch (non-fast-forward)
hint: Updates were rejected because the tip of your current branch is
behind hint: its remote counterpart. Integrate the remote changes
(e.g. hint: 'git pull ...') before pushing again.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

有关信息,我尝试选择提交并选择恢复,但是这在从另一个分支合并的两个提交上失败了。因此,我想跳过恢复并重置到这些提交之前的版本。

我没有权限强制推送。

如果我执行拉动,这只会恢复到原来的头部。

谢谢你的帮助。

git tortoisegit git-reset

0
推荐指数
1
解决办法
4671
查看次数