我正在研究在 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 产生了如下所示的所需结果。使用 …
我想使用 .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) 我正在使用 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)
我究竟做错了什么?
有关信息,我尝试选择提交并选择恢复,但是这在从另一个分支合并的两个提交上失败了。因此,我想跳过恢复并重置到这些提交之前的版本。
我没有权限强制推送。
如果我执行拉动,这只会恢复到原来的头部。
谢谢你的帮助。
asp.net-core ×1
c# ×1
git ×1
git-reset ×1
livecharts ×1
performance ×1
redraw ×1
self-hosting ×1
signalr ×1
tortoisegit ×1
wpf ×1