小编Sle*_*mer的帖子

现在为什么网络应用程序会因await/async而疯狂?

我来自后端/胖客户端背景,所以也许我错过了一些东西......但是我最近看了一个开源JWT令牌服务器的来源,并且作者对await/async感到疯狂.喜欢在每个方法和每一行.

我得到的模式是...在一个单独的线程中运行长时间运行的任务.在我很厚的客户端,我会使用它,如果一个方法可能需要几秒钟,以便不阻止GUI线程...但绝对不是一个需要几毫秒的方法.

这是否过度使用await/async你需要的web dev或类似Angular的东西?这是在JWT令牌服务器中,因此甚至没有看到它与任何这些服务器有什么关系.这只是一个REST终点.

如何让每一行异步都能提高性能?对我来说,它会破坏所有这些线程的性能,不是吗?

c# multithreading asynchronous

44
推荐指数
1
解决办法
2159
查看次数

C#Double.ToString()性能问题

我有以下方法将双数组转换为List<string>:

    static Dest Test(Source s)
    {
        Dest d = new Dest();

        if (s.A24 != null)
        {
            double[] dd = s.A24;

            int cnt = dd.Length;

            List<string> lst = new List<string>();

            for (int i = 0; i < cnt; i++)
                lst.Add(((double)dd[i]).ToString());

            d.A24 = lst;
        }
        else
        {
            d.A24 = null;
        }

        return d;
    }
Run Code Online (Sandbox Code Playgroud)

根据我的基准测试,在循环中执行List.Add()似乎是最快的方式,击败所有各种LINQ和转换技巧.

真的很慢.一百万次呼叫2400ms(任何CPU,更喜欢64位).所以我正在尝试各种方法来加快速度.我们假设我无法缓存源列表或目标列表等.

所以无论如何,我偶然发现了一些奇怪的东西...如果我将lst.Add()行改为强制转换为十进制而不是双精度,那么它会更快,更快.900毫秒vs 2400毫秒.

这是我的问题

1)十进制有更高的准确性然后加倍,所以我不应该在类型转换中丢失任何东西,对吗?

2)为什么Decimal.ToString()比Double.ToString()快得多?

3)这是一个合理的优化,还是我错过了一些关键的细节,它会回来咬我?

我并不担心使用更多的内存,我只关心性能.

此时测试数据没有任何复杂功能,只需使用:

s.A24 = new double[] { 1.2, 3.4, 5.6 };
Run Code Online (Sandbox Code Playgroud)

.net c#

15
推荐指数
1
解决办法
1114
查看次数

禁用 Visual Studio 2022 登录提示?

我最近升级到 VS 2022 17.2.0。现在,每次启动 VS 时,都会提示我登录。该对话框顶部显示“Visual Studio”,底部有一个标有“登录选项”的按钮。

我对链接到 Microsoft 帐户没有兴趣。

我进入了“工具”| 选项| 环境 | 帐户并取消选中所有复选框。仍然收到登录提示。

有什么办法可以禁用它吗?这仅在 17.2.0 上开始发生。

注意:这不是带有“现在不”选项的对话框。

visual-studio

14
推荐指数
2
解决办法
5500
查看次数

Cassandra Windows 10 访问冲突

编辑:虽然 yukim 的解决方法确实有效,但我发现通过降级到 JDK 8u251 与 8u261,sigar 库可以正常工作。

  • Windows 10 x64 专业版
  • 卡桑德拉 3.11.7

注意:我将 JDK 11.0.7 作为我的主要 JDK,所以我在 Cassandra 的批处理文件中覆盖了 JAVA_HOME 和 PATH。

打开管理员提示和...

版本

java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)

蟒蛇--版本

Python 3.8.5
Run Code Online (Sandbox Code Playgroud)

编辑 #1切换到 Python 2.7.18,这至少使 cqlsh 在没有服务器上启动并出错,而在 3.8.5 上它甚至没有运行。

回声%JAVA_HOME%

c:\progra~1\java\jdk1.8.0_261
Run Code Online (Sandbox Code Playgroud)

当我运行 cassandra.bat 时,我得到:

Detected powershell execution permissions.  Running with enhanced startup scripts.
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*

    WARNING!  Automatic page file configuration detected.
    It …
Run Code Online (Sandbox Code Playgroud)

cassandra cassandra-3.0

11
推荐指数
2
解决办法
4934
查看次数

Swagger(Asp.Net Core)是否有控制器描述?

我正在构建一个REST服务,它将托管多个控制器(微服务).总的来说,我们可以调用服务"Bob".因此昂首阔步地展示了"Bob"/"Bob Microservices的集合".然后列出控制器名称.现在,它只是显示XYZ,ABC等.有没有办法可能有swagger显示"XYZ - XYZ API的集合"或类似的东西?

似乎swagger显示方法的///摘要,但不显示控制器.

c# swagger swagger-ui asp.net-core

7
推荐指数
4
解决办法
5612
查看次数

我需要对 Spacy NER 进行文本清理吗?

我是NER和的新手Spacy。尝试找出需要进行哪些文本清理(如果有)。似乎我发现一些例子修剪了前导和尾随空格,然后用开始/停止索引进行处理。我看到一个例子,那个人做了一堆清理工作,但他的准确性非常差,因为所有索引都搞乱了。

\n

澄清一下,数据集是用 DataTurks 注释的,所以你得到像这样的 json:

\n
        "Content": <original text>\n        "label": [\n            "Skills"\n        ],\n        "points": [\n            {\n                "start": 1295,\n                "end": 1621,\n                "text": "\\n\xe2\x80\xa2 Programming language...\n
Run Code Online (Sandbox Code Playgroud)\n

因此,通过“破坏索引”,我的意思是,如果你去掉前导\\n,则需要更新起始索引,以便它仍然正确对齐。

\n

所以这确实是个问题,如果我开始从开头、结尾或中间删除字符,我需要将规则应用于内容属性并调整开始/结束索引以匹配,不是吗?我猜显然是“是”:),所以我想知道需要进行多少清洁工作。

\n

那么您会删除\\ns、项目符号、前导/尾随空格,但保留标准标点符号,如逗号、句号等?

\n

小写、停用词、词形还原等内容又如何呢?

\n

我在看过的一些示例中看到的一个问题是,开始/停止索引确实会因清理而丢失,因为在删除字符以保持同步时,您需要更新每个注释。

\n

IE

\n
A 0 -> 100\nB 101 -> 150\n
Run Code Online (Sandbox Code Playgroud)\n

如果我删除charat position 50,那么我需要调整B to 100 -> 149

\n

python named-entity-recognition spacy

7
推荐指数
1
解决办法
2040
查看次数

Asp.Net Core Swagger / FromForm ///(三斜线)评论未拾取?

我有一个如下所示的控制器方法:

[HttpPost]
[Consumes("application/x-www-form-urlencoded")]
[Produces("application/json")]
public async Task<IActionResult> GenerateTokenAsync([FromForm]TokenParameters tokenParameters)
Run Code Online (Sandbox Code Playgroud)

TokenParameters 看起来像这样:

public class TokenParameters
{
    /// <summary>
    /// Specifies the grant type. Must be "password".
    /// </summary>
    [Required]
    public GrantType? grant_type
    {
        get;
        set;
    }

    /// <summary>
    /// Specifies the username.
    /// </summary>
    [Required]
    public string username
    {
        get;
        set;
    }

    /// <summary>
    /// Specifies the password.
    /// </summary>
    [Required]
    public string password
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但 Swagger UI 没有拾取成员的 /// 三斜杠注释。我的其他控制器使用 FromBody 和 /// 三斜杠注释可以很好地配合它们。看起来底部的模型部分接收了注释,但当我查看控制器时,我正在谈论浅绿色部分中的模型描述。

我查看了架构注册表,描述确实在那里。

编辑:使用 …

c# swagger swagger-ui asp.net-core

6
推荐指数
1
解决办法
2957
查看次数

"固定"/"负载均衡"C#线程池?

我有一个"昂贵"的第三方组件.该组件不是线程安全的.所述组件托管在WCF服务内(暂时),因此......每次呼叫进入服务时,我都必须新建组件.

我想要做的是拥有一个说16个线程的池,每个线程都旋转它们自己的组件副本,并且有一个机制来调用该方法并将其分配给16个线程中的一个并返回值.

所以很简单:

var response = threadPool.CallMethod(param1, param2);
Run Code Online (Sandbox Code Playgroud)

它可以阻止调用,直到它得到响应,因为我需要响应才能继续.

有什么建议?也许我正在过度思考它并且ConcurrentQueue由16个线程提供的服务可以完成这项工作,但是现在确定方法返回值将如何返回给调用者?

c# wcf multithreading

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

如何围绕圆圈定位标签?

我正在试图弄清楚如何计算圆周围的文字标签的位置.这比你第一次阅读时想象的要复杂得多.

我得到了基础知识:

X = ptCenter.X + (dRadius * Math.Cos(dAngle * Math.PI / 180.0))
Y = ptCenter.Y + (dRadius * Math.Sin(dAngle * Math.PI / 180.0))
Run Code Online (Sandbox Code Playgroud)

那么,这将给出我在圆角dAngle上的点与半径dRadius.当然,DrawText(任何种类,但我特别使用DrawingContext.DrawText,如果这对你的答案有任何不同)绘制时给定的点作为文本的左上角.

问题是,这不是绘制文本的正确位置.以下是该问题的说明:

https://support.office.com/en-us/article/Present-your-data-in-a-radar-chart-16e20279-eed4-43c2-9bf5-29ff9b10601d

Jan水平居中于点2月从左下角绘制,而Mar似乎是水平中间的那种4月垂直居中等等.

标签不是以统一的方式定位在点周围.它取决于你绘制的角度.

我需要绘制的标签数量可能会有所不同,因此硬编码软糖因素已经出来了.我需要绘制的角度也可以变化,因此也没有任何软糖因素.所有这一切都必须在飞行中计算.

看起来好像0,90,180,270是特殊情况,而其他似乎是在点周围垂直半中心,但根据你所谈论的圆圈的哪一边向右或向左绘制?

我在这里走在正确的轨道上吗?或者是否有"已知"算法?

谢谢.

c# wpf

5
推荐指数
2
解决办法
966
查看次数

RabbitMQ:直接答复?

是否有一个很好的示例(C#),说明如何在RabbitMQ中进行直接回复?我想要做的是让X生产者发布一条消息(“我为某人做了一些工作”),我希望X消费者中的一位能够捡起它,进行工作并发送回响应。不是基本的Ack,而是一些数据,即计算结果。当然,响应必须回到正确的生产者。

制片人:

    using (var connection = factory.CreateConnection())
    {
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "hello",
                                 durable: true,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            string message = "Hello World!";
            var body = Encoding.UTF8.GetBytes(message);

            var properties = channel.CreateBasicProperties();
            properties.Persistent = true;

            channel.BasicPublish(exchange: "",
                                 routingKey: "hello",
                                 basicProperties: properties,
                                 body: body);

            Console.WriteLine(" [x] Sent {0}", message);
        }
    }
Run Code Online (Sandbox Code Playgroud)

消费者:

    using (var connection = factory.CreateConnection())
    {
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "hello",
                                 durable: true,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            channel.BasicQos(prefetchSize: 0, …
Run Code Online (Sandbox Code Playgroud)

.net c# rabbitmq

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