在 SignalR 中 Hub.Context 线程安全吗?

2023-11-25

如果不同客户端同时发生多个请求,则 Hub.Context.ConnectionId 的值会在处理程序执行期间发生变化。

假设我有 2 个客户端与客户端 ID A 和 B 连接,并且我的 Hub 上有一个名为 foo() 的方法。我从 A 向服务器发送一个调用 foo() 的请求,然后在处理来自 A 的请求时,我从 B 发送一个调用 foo() 的请求。在处理 A 的请求时 Hub.Context.ConnectionId == A,但在方法调用结束时 Hub.Context.ConnectionId == B。

我应该复制 Hub.Context 吗?我应该在什么时候这样做?


它不需要是线程安全的,因为 Hub 实例不是静态的,因此您不需要复制任何内容。

它们是在每次调用时创建的。因此,来自客户端的每次调用都会创建一个新的 Hub 实例和 HubContext。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SignalR 中 Hub.Context 线程安全吗? 的相关文章

  • 通过 VLA 数组跳转到 goto 时出现分段错误

    以下示例演示了该问题 include
  • C# AES Rijndael - 检测无效密码

    我正在使用 Rijndael 加密程序中的一些敏感数据 当用户输入错误的密码时 大多数情况下CryptographicException抛出消息 填充无效且无法删除 然而 CryptStream 不会抛出密码错误的异常 而是返回错误解密的流
  • HttpResponseMessage 的内容为 JSON

    我有一个 ASP NET MVC WEB API 由于多种原因 由于没有授权而重定向 我不能只使用一个简单的对象并在我的控制器方法中返回它 因此我需要 HttpResponseMessage 类来允许我重定向 目前我正在这样做 var re
  • 当“”可以分配给std::string时,为什么有“clear”方法?

    一个可以用string clear函数清空字符串 也可以使用空双引号 来执行此操作 有什么不同 当您分配一个空字符串时 编译器必须在数据部分存储一个空的 C 字符串 并创建代码以将指向它的指针传递给赋值运算符 然后 赋值运算符必须从数据部分
  • 对相当大的整数的大集合的操作的快速实现

    描述 我实现了以下类 LabSetInt64 参见下面的代码 这里的目标是尽可能快地操作大量大整数 最多 10M 的值 我的主要要求集中在 至关重要 尽快获取集合的大小 基数 重要 能够非常快速地迭代一组集合 所以 从下面的实现开始 我还有
  • 将内核链接到 PTX 函数

    我可以使用 PTX 文件中包含的 PTX 函数作为外部设备函数 将其链接到另一个应调用该函数的 cu 文件吗 这是另一个问题CUDA 将内核链接在一起 https stackoverflow com questions 20636800 c
  • 优化对绑定到 DataGridView 的 DataTable 的更新

    我的应用程序中有一个显示一些数据的表单 当我第一次显示表单时 我将一些数据加载到 DataTable 中 然后将 DataTable 绑定到 DataGridView 我还启动了一个异步方法来执行一些较慢的数据库查询 当这些慢查询完成时 我
  • 在 DefaultHttpContext 上使用 FeatureCollection 时,响应对象为 null

    我正在测试一些 net Core 中间件 并希望使用整个 asp net Core http 管道来运行中间件 而不是模拟它 问题是 当我使用特征集合时 不知何故 响应对象没有在 httpRequest 中设置 并且它在请求本身上是只读的
  • 有哪些 API 可在 Windows 中使用 C# 配置扬声器设置?

    我环顾了很多不同的地方 但似乎找不到一个简单的方法来做到这一点 我在 Windows 7 中有多个声卡 并使用 HDMI 将声音输出到我的 AVR 放大器 我遇到的问题是 当放大器关闭时 它会导致窗口丢失扬声器配置 所以我想做的是编写一个小
  • .NET 中 IEqualityComparer 中 GetHashCode 的作用是什么?

    我试图了解 IEqualityComparer 接口的 GetHashCode 方法的作用 下面的例子取自MSDN using System using System Collections Generic class Example st
  • 使用成员函数作为 std::shared_ptr 的自定义删除器时出现问题

    我正在尝试弄清楚如何将 std shared ptr 与自定义删除器一起使用 具体来说 我将其与 SDL Surface 一起使用 如下所示 std shared ptr
  • 使用 MapViewOfFile 有什么限制吗?

    我正在尝试将内存映射文件用作 hFile CreateFile State Path GENERIC READ FILE SHARE READ FILE SHARE WRITE 0 OPEN EXISTING FILE FLAG SEQUE
  • 使用 for 循环创建链表

    这是我的结构 struct ListItem int data struct ListItem next 假设链表的第一个节点的 data 0 我想编写一个 for 循环来创建大小为 5 的链表 但我不知道如何工作 我尝试了以下方法 int
  • 复杂的 C 声明

    我刚刚在互联网上浏览了一些代码 发现了这个 float foo SIZE SIZE 我如何阅读这份声明 是否有一套特定的规则来阅读如此复杂的声明 我有一段时间没做这个了 从 开始foo然后向右走 float foo SIZE SIZE fo
  • 一些涉及类析构函数和删除运算符的内存管理问题?

    在阅读了一些教程后 我仍然不清楚 C 中内存管理的一些观点 1 当使用 new 运算符声明的类超出范围时 是否会调用其析构函数并释放内存 是否有必要调用删除运算符来释放类的内存并调用其析构函数 class Test void newTest
  • DLL 中的 XP 风格组合框

    我需要使用 C 和 WIN32 API 无 MFC 在 DLL 中创建 XP 风格的组合框 我设法在 DLL 中创建控件 不是以 XP 风格 我设法在带有清单的 exe 中创建 XP 样式组合框 但它在 DLL 中不起作用 为了让您的 DL
  • C语言:如何获取使用strtok()一次后剩余的字符串

    我的字符串是 A B C D E 分隔符是 如何获取执行 strtok 一次后剩余的字符串 即 B C D E char a A B C D E char separator char b strtok a separator printf
  • 一个对大文件有效的轻量级 XML 解析器?

    我需要解析潜在的巨大 XML 文件 所以我猜这排除了 DOM 解析器 是否有任何优秀的 C 轻量级 SAX 解析器 在占用空间上可与 TinyXML 相媲美 XML的结构非常简单 不需要诸如命名空间和DTD之类的高级东西 只是元素 属性和
  • Azure Function App Azure 服务总线触发器触发两次

    我使用带有服务总线触发器的 Azure Function Apps 来读取服务总线并对服务总线消息的内容执行操作 服务总线接收 JSON 序列化对象 然后将 JSON 消息反序列化回 Function App 中的对象 然而 由于某种原因
  • 即使对于新上下文,OnModelCreating 也仅调用一次

    我有多个相同但内容不同的 SQL Server 表 在编写代码优先 EF6 程序时 我尝试为每个程序重用相同的数据库上下文 并将表名称传递给上下文构造函数 然而 虽然每次都会调用构造函数 但尽管每次都是从 new 创建数据库上下文 但 On

随机推荐

  • Python datetime.strptime() 占用大量 CPU 时间

    我有一些日志解析代码需要将时间戳转换为日期时间对象 我正在使用 datetime strptime 但根据 cProfile 的 cumtime 列 该函数使用了大量的 cputime 时间戳的格式为01 Nov 2010 07 49 33
  • 为忘记密码生成随机令牌的最佳实践

    我想为忘记密码生成标识符 我读到我可以通过使用 mt rand 的时间戳来做到这一点 但有些人说时间戳可能不是每次都是唯一的 所以我在这里有点困惑 我可以使用时间戳来做到这一点吗 Question生成自定义长度的随机 唯一令牌的最佳实践是什
  • JavaScript 中如何判断一个对象是否具有给定的属性

    如何判断一个对象是否x有一个定义的属性y 无论其值如何x y 我目前正在使用 if typeof x y undefined 但这似乎有点笨拙 有没有更好的办法 对象具有属性 如果您正在测试对象本身 而不是其原型链的一部分 上的属性 您可以
  • 我应该在电话的 SQL varchar(length) 中考虑最长的全球电话号码是多少

    我应该在 SQL 中考虑的最长的全球电话号码是多少varchar length 对于电话 考虑因素 表示国家 地区代码 为区号 x 6 个数字用于 Extension 扩展 因此设为 8 space 组之间的空格 即在美国电话中 x xxx
  • 使用 zsh 更改 virtualenv 实例的提示符样式

    我想为我使用或创建的每个 virtualenv 实例更改我的 zsh 提示符样式 我的实际提示是这样的 declare PS1 fg magenta n reset color at fg yellow m reset color in f
  • 在 Java 中包含 Perl

    有没有什么方法可以执行 perl 代码而不必使用 Runtime getRuntime exec 在java应用程序中解析 我自己最近也在研究这个问题 迄今为止我发现的最有希望的事情是内联 JavaCPAN 上的模块 它允许从 Perl 调
  • 使用 http.get node.js 进行承诺

    我正在做 Nodeschool 练习 这 这个问题与上一个问题 HTTP COLLECT 相同 您需要使用http get 然而 这一次你将 提供三个 URL 作为前三个命令行参数 您必须收集每个人向您提供的完整内容 URL 并将其打印到控
  • 使用参数的 npgsql 的类似语句

    我有一个 postgresql 数据库 我想查询表 Locations 以检索与用户输入的名称匹配的所有位置的名称 列名称为 LocationName 我正在使用 ASP net 和 C NpgsqlConnection con new N
  • 如何使用 std::forward_list 在恒定时间内进行范围拼接?

    我想拼接范围 first last 包括两个端点 我有元素的迭代器before first and to last 我可以用splice after 但仅限于线性时间 我相信这种拼接可以在恒定时间内完成 我怎样才能做到这一点std forw
  • 添加自定义维度以请求遥测 - Azure 函数

    我正在使用 v2 x 创建一个新的 Function 应用程序 并且正在集成 Application Insights 以进行请求日志记录 这是自动完成的 因为 Azure Function 现在已与 App Insights 集成 如文档
  • C++ 读写同一类的多个对象

    airport air 1 2 3 an airport constructor ofstream myfile myfile open rishab ios app ios binary myfile write char air siz
  • jQuery tablesorter + 调整列宽

    有没有jQuery用于调整与表排序器一起使用的表列大小的插件 看起来像柔性网格有你可能想要的一切
  • 我可以在实体框架中访问 IDbCommandInterceptor 中的实体吗

    实现 IDbCommandInterceptor 时 我可以访问为命令 查询创建的 SQL 命令 是否还可以访问在实现的方法中持久 检索的实际实体对象 这是一些幻想代码来演示我想做的事情 public class WidgetInterce
  • Google 表格支持哪些数据类型?

    我无法在网上或在表格文档中找到答案 Google 表格中的单个单元格支持哪些数据类型 例如 这是我到目前为止所看到的 是否有 Google 表格接受的可接受数据类型列表 和你一样 我无法找到明确的数据类型列表 不过 通过个人经验和测试 我验
  • JComponent.isShowing() 和 isDisplayable() 之间的区别

    有什么区别Component isShowing and Component isDisplayable 我想用它们来决定是否应该停止 启动计时器 一个组件 isShowing when 确定该组件是否显示在屏幕上 这意味着 该组件必须是可
  • 将 git 文件保存在另一个文件夹中

    如何设置 git 来跟踪文件夹中的文件 a 但存储 git文件夹中的文件夹 b 另外 为了更进一步 我可以保留 git另一台服务器上的文件夹并运行git来自服务器的命令a去检查git st例如 在服务器上b 基本上 我希望能够在某个文件夹上
  • 检查点射线调谐试验的最佳模型

    所以我刚刚跑了一个tune实验并得到以下输出 Trial name status loc lr weight decay loss accuracy trainable 13720f86 TERMINATED
  • 手动添加迁移?

    我首先在项目中使用实体框架代码 并且所有表都已在不久前创建 修改 现在我需要向表添加唯一约束 我想创建一个迁移 其中将包含以下行Up 方法 并且有模型类没有变化 CreateIndex TableName new Column1 true
  • 在 Spring Boot 中将属性放在 application.yml 或 bootstrap.yml 上有什么区别?

    在 Spring Boot 中将属性放在 application yml 或 bootstrap yml 上有什么区别 在logging config 情况下 应用程序的工作方式有所不同 我刚刚问过Spring Cloud伙计们 我认为我应
  • 在 SignalR 中 Hub.Context 线程安全吗?

    如果不同客户端同时发生多个请求 则 Hub Context ConnectionId 的值会在处理程序执行期间发生变化 假设我有 2 个客户端与客户端 ID A 和 B 连接 并且我的 Hub 上有一个名为 foo 的方法 我从 A 向服务