小编Foi*_*itn的帖子

获取 Blazor 应用程序的所有连接用户的列表

因此,我的 blazor 应用程序目前正在生产中。

我确实需要在某些时候发布新版本。我想知道当时是否有人在使用该应用程序。为此,我可以询问每个人(大约 20 名同事)是否有人在使用该应用程序。

我觉得应该有一种更简单的方法来做到这一点。现在我知道 blazor 应用程序使用 SignalR 来执行服务器和客户端之间的通信,并且当我重新启动 docker 容器时,所有连接都会重置。所以我觉得应该有一种方法可以从 SignalR Hub 请求是否有人连接到应用程序,但我还没有找到方法。

有谁知道有什么方法可以检查是否(以及谁)在 x 点及时使用该应用程序?

c# signalr blazor blazor-server-side

11
推荐指数
1
解决办法
1636
查看次数

在不同版本上以不同方式解析文件

编辑:我已经做了一些关于此的研究,但未能找到解决方案!

我正在从XML文件中读取配置.为某些版本设置配置的布局.此版本位于XML的第一行,易于提取.

我想知道的是,实际解析此文件/获取另一种方法的最佳方法是什么,基于版本(所有4个元素,主要,次要,构建和修订).

现在我想出了这个:

switch (version.Major)
{
    case 0:
        switch (version.Minor)
        {
            case 0:
                switch (version.Build)
                {
                    case 0:
                        switch (version.Revision)
                        {
                            case 0:
                                return VersionNone(doc);
                        }
                        break;
                }
                break;
        }
        break;
}
throw new NotImplementedException();
Run Code Online (Sandbox Code Playgroud)

但我发现这种优雅(根本没有),我觉得有更好的方法可以做到这一点.

有谁可以提供帮助?

c# xml version switch-statement

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

异步睡眠循环

所以对于我的一个项目,我需要每 100 毫秒从一个硬件中获取值。获取需要 x 毫秒。所以我正在寻找但找不到的是一种确保 for/while 总是需要 100 毫秒(或更多)的方法。

所以在伪代码中:

for (int i = 0; i < 100; i++) // Take measurements for 10 seconds
{
    // Call some async method that sleeps for 100 ms
    this.temperatureList.Add(this.HardwareManager.GetSensorValue(ESensor.Temperature)); // Takes 15 ms
    this.temperatureList.Add(this.HardwareManager.GetSensorValue(ESensor.Pressure)); // Takes 30 ms
    // await async method to finish
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些异步等待的东西,但我似乎无法理解它。谁能帮我找到一种可靠的方法来以 100 毫秒的间隔进行 10 秒的测量?

编辑:我知道因为我在 Windows 上运行 C#,所以计时并不是一个真正有效的选择。但这在我的问题中并不重要。我的问题是,如何确保 for 循环至少需要(!!!)100 毫秒,同时尽可能接近 100 毫秒。

c# wait async-await

3
推荐指数
1
解决办法
254
查看次数