RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-255926

John's questions

Martin Hope
John
Asked: 2022-08-15 03:20:18 +0000 UTC

与字符串相比,如何解释 object.Equals 的奇怪行为?

  • 0
string s1 = "test";
string RuntimeS1 = "test1".Substring(0, 4); // интернирования нет
Console.WriteLine(object.ReferenceEquals(s1, RuntimeS1)); //  false, expected

object ObjectCastedRuntimeS1 = RuntimeS1;
Console.WriteLine(ObjectCastedRuntimeS1.Equals(s1)); // true, wat ?!
c# .net
  • 1 个回答
  • 53 Views
Martin Hope
John
Asked: 2022-08-12 07:40:11 +0000 UTC

为什么 HTTP(作为同步)和 AMQP(作为异步)在“服务之间的通信”主题中经常被对比?

  • 0

为什么 HTTP(作为同步)和 AMQP(作为异步)在“服务之间的通信”主题中经常被对比?( 1 , 2 , 3 , 4 ) 使用代理和 AMQP 很清楚为什么这是异步的。当可以异步发出 HTTP 请求而无需等待线程响应时,为什么 HTTP 通常呈现为同步方式?在我看来,它既可以是同步通信方式,也可以是异步通信方式。

可能我记得web服务器的实现细节,但是处理过程中的HTTP请求似乎也在某种程度上进入了队列(不是很大,只在RAM中),队列并不大,如果我们超越限制,那么我们就会丢失请求。很可能它不包含在协议本身中。

веб-программирование http
  • 1 个回答
  • 47 Views
Martin Hope
John
Asked: 2022-08-04 06:31:37 +0000 UTC

什么是 C# 和一般编程中的异步函数/方法?

  • 0

究竟什么应该称为异步方法?应该使用什么标准来调用异步方法?其他术语似乎很清楚,但让我们重复一下,以便我们可以进一步使用它来尝试定义异步方法的概念。

回忆相关概念

有一个异步方法调用(AMI)的概念——

在等待被调用代码完成时调用站点未被阻塞。相反,当回复到达时,调用线程会收到通知。

此外,调用这个词可以更改为调用或执行。

有一个异步的概念,但在编程中它似乎几乎可以与 AMI ( 1 ) 互换使用——

执行一个操作而不等待这个处理完成,执行的结果可以稍后处理。

他们经常举一个例子,用一个烧开的水壶来解释它是什么。

让我们寻找一个异步方法的定义,暂时忘记我们是如何想象它的,以便客观。

  1. 来源一 - async 关键字的文档-

使用 async 修饰符指定方法、lambda 表达式或匿名方法是异步的。如果在方法或表达式上使用此修饰符,它被称为异步方法。

可以翻译为:如果在方法或表达式中使用此修饰符,则称为异步方法。很明显,并非每个使用异步的方法都必须包含 AMI 或与现实中的异步相关的东西。

  1. 另一方面,有这样一个来源2:

异步方法是我们调用以启动冗长操作的方法。该方法应该执行启动操作所需的操作并“非常快速地”返回,以便没有处理延迟。

如果您的线程告诉该方法它需要完成工作,并且该方法说“好的,我会这样做,完成后我会打电话给您”,则该方法是异步的

这向我们暗示,在异步方法的定义中应该有一些关于 AMI 的内容,我们在上面回忆过。

  1. 甚至在旧 Dock 中的同一个 microsoftware 中(在 async 关键字出现之前),您也可以找到该术语的以下用法(3):

如果异步方法遇到未处理的异常,...

所以看起来这样的概念甚至在 async 关键字之前就已经存在,但也许随着它的出现,新的含义出现了纯粹与语言的语法有关。

  1. ...

不幸的是,研究这些来源需要很长时间,所以我有机会补充那些将回答这个问题的人。

试图从来源中找到定义。

根据所研究的来源,我想到了定义异步方法的哪些选项:

  1. 这是声明时带有 async 关键字的方法。例子:
async void SimpleAsync() {}
  1. 它是一种可用于非阻塞调用的方法。例子:
async void DelayAsync() { Task.Delay(1); } //Task.Delay асинхронный, так его можно использовать для AMI. Прям тут и используют.  
async void Delay2Async() { await Task.Delay(1); } //Task.Delay асинхронный, так его можно использовать для AMI. Прям тут и используют.
async Task Delay3Async() { await Task.Delay(1); } //Task.Delay асинхронный, так его можно использовать для AMI. Прям тут и используют. 


async void DelayExternalAsync() { DelayAsync(); Delay2Async(); } //DelayAsync и Delay2Async асинхронные, так их можно использовать для AMI. Прям тут и используют.
async void DelayExternalAwaitAsync() { await Delay3Async(); } //Delay3Async асинхронный, так его можно использовать для AMI. Прям тут и используют.
//DelayExternalAsync и DelayExternalAwaitAsync асинхронные, так их можно использовать для AMI. Хотя тут их не используют для этого.

async Task<int> JustEmptyAsync() { return await Task.FromResult(1); } // JustEmptyAsync не асинхронный, так его не можно использовать для AMI в других местах, так как внутри ничего асинхронного.
  1. 它是一种发生非阻塞调用的方法。例子中,几乎所有方法都是异步的,但Task.Delay不是,因为它本身并没有AMI,至少看现有代码(也许不是这样,但我们暂时可以做这样的假设。虽然还有一个问题——有没有可以非阻塞调用的方法,但本身不包含AMI?如果有,那么这里我想用这个方法作为例子,否则这个选项好像是相当于第二个):
async void DelayAsync() { Task.Delay(1); } //DelayAsync асинхронный, так как в нем есть AMI 
async void Delay2Async() { await Task.Delay(1); } //Delay2Async асинхронный, так как в нем есть AMI 
async Task Delay3Async() { await Task.Delay(1); } //Delay3Async асинхронный, так как в нем есть AMI 


async void DelayExternalAsync() { DelayAsync(); } //DelayExternalAsync асинхронный, так как в нем есть AMI 
async void DelayExternalAwaitAsync() { await Delay3Async(); } //DelayExternalAwaitAsync асинхронный, так как в нем есть AMI 
  1. 其他选项...

我们强调最初的问题,并用我们在研究资料时学到的东西来补充它

这个概念的起源是什么?它现在有什么意义?还是像许多其他众所周知但没有明确定义的术语一样 - 谁知道他想怎么做?随着时间的推移,是否有多个定义?

c# async-await
  • 2 个回答
  • 227 Views
Martin Hope
John
Asked: 2022-07-21 00:54:44 +0000 UTC

锁如何实现 Serializable 事务隔离级别?

  • 0

这个隔离级别和其他的概念很清楚。如果我们谈论其他级别,那么如何使用锁来实现它们就很清楚了。这里不加深对其他层次的粗略理解:

  • Read Uncommited - 在写入后立即完成其操作的每个写入操作添加一个排他锁(无需等待事务结束)
  • Read Commited - 在上一级添加共享读锁,读完后立即完成动作
  • 可重复读取 - 而不是已提交的读取,读取锁仅在事务完成后过期。

但是在这种情况下他们如何使 Serializable ?实现的微妙之处可能非常好,但我想至少在肤浅的层面上理解。

sql
  • 1 个回答
  • 10 Views
Martin Hope
John
Asked: 2022-06-15 04:52:59 +0000 UTC

为什么我们需要后端的同步上下文?

  • 16

据我了解,同步上下文的使用是可以让你在UI线程上继续(否则我们将无法更新UI,如果我们尝试,就会出现异常)。

1.正确理解?

我尝试在 .NET Core 2.2 控制台应用程序中执行该示例。使用长时间运行的异步操作创建了一个等待,与等待之前相同的上下文将用于继续。鉴于我知道的上下文存在的原因,我假设线程应该与等待之前相同。但是控制台的输出继续显示,而不是等待之前的线程 ID。

据我了解,由于(.NET Core 控制台)在执行时根本没有同步上下文。确实,那里没有UI,它有什么用。我想它只会像我想的那样在 UWP 和 WPF 等 UI 项目上工作。

但在这里:

我听说在 .NET Core 中不需要应用 ConfigureAwait(false)。是这样吗?

有信息表明 .NET Framework 在非 UI 项目中具有自己的上下文 + 可以在核心项目中创建自定义同步上下文。

2. 为什么在 UI 项目之外创建/使用上下文会有用?

3、为什么.NET Framework默认有同步上下文?

  1. 我不确定我是否正确理解支持在 .NET Core 后端使用 ConfigureAwait(false) 的论点。我是否正确理解它只有在以下情况下才有意义:(1)我选择了我在背面使用的逻辑的一部分,在一个库中并在 UI 项目中重用它。(2)我害怕第三 -可以带来自己的上下文并以某种方式种植主要项目的派对库。虽然为什么后面需要这样的库也是一个问题。 ?
c#
  • 2 个回答
  • 10 Views
Martin Hope
John
Asked: 2022-06-08 23:23:57 +0000 UTC

如果有 readonly 关键字,为什么需要 readonlydictionary?

  • 4

如果存在带有 readonly 关键字的普通 Dictionary<K,V> ,那么拥有 ReadOnlyDictionary<K,V> 有什么意义?

c#
  • 1 个回答
  • 10 Views
Martin Hope
John
Asked: 2020-09-16 04:23:06 +0000 UTC

为什么哈希表查找速度和数组值访问不变?

  • 3

计算出的哈希值与特定单元格相比如何?

碰撞的情况是可以理解的,但这不是关于那个的。

即使我们的值是排序的,它也将是一个对数。

同样,如何通过索引访问常量的数组?

массивы
  • 1 个回答
  • 10 Views
Martin Hope
John
Asked: 2020-08-24 19:03:01 +0000 UTC

Android用户可以安全吗?

  • 6

作为操作系统用户,我不了解安全性,尽管我知道密码学和证书的基本概念。现在我尽量不要从不太知名的公司下载应用程序,也不要不必要地访问应用程序。在寻找通俗易懂的描述时,对于开发者来说,通常有一些表面的提示或深入的描述,很难在短时间内理解。所以我想问那些已经精通这个的人:

  1. 您如何将应用程序与数据分开?某些应用程序可能会请求访问文件系统的权限,但并不总是容易理解究竟允许什么。我可以将其他应用程序无法访问的重要信息存储在手机上的什么位置?在 Windows 上,在紧要关头,我可以在虚拟机上运行应用程序,而不必担心数据。在 Android 上,我不记得这种可能性。剪贴板呢,默认情况下它是否可供应用程序使用?我可以无所畏惧地复制密码吗?如果我不使用文件系统获取重要信息,而是在手机上使用 Google 驱动器,那么我是否无需担心设备上的其他应用程序?

  2. 默认情况下,应用程序可以访问其服务器,并且通常在没有它的情况下无法工作。例如,他们经常要求照片和视频的许可......所以他们可以毫无问题地将我的个人数据发送到服务器?联系方式也一样吗?

  3. 碰巧短信来自银行,代码自动插入银行应用程序。银行应用程序如何连接到此 SMS?另一个应用程序可以通过替换它来窃取数据吗?碰巧应用程序要求访问联系人和短信,所以他们可以访问这些代码?

  4. 根权限会出现什么问题?

  5. 很多中国新公司都在做安卓改造,为了安全而放纯安卓值得吗?这种修改通常是危险的吗?

  6. 还有什么可能对 Android 的安全性很重要?

android
  • 3 个回答
  • 10 Views
Martin Hope
John
Asked: 2020-08-16 06:05:10 +0000 UTC

如何在一棵二叉搜索树中找到两个相邻的数值?

  • 1

我想了解解决问题的最简单方法。数轴上有值,需要根据请求为传入的数值找到一对现有的相邻值。在结构和输入中都不能有重复的点。

示例:在树 1、5、6、7.56、100 和输入 8 中,结果为 (7.56, 100)

还是另一种数据结构更适合这里?(要求的最大速度)

UPD:换句话说,我想出了它,但还没有实现。让我们将期望值称为 v。让我们开始寻找 v。如果最后一个值小于 v(node1),那么您需要找到一个最小值大于 node1 (node2) 的节点。如果最后一个值大于v(node2),那么你需要找到最大值小于node2 (node1)的节点。如果在树中找到值为 v 的节点,则报告异常。如果该对中没有值,则在响应中将其替换为 null,例如 (null,null) 或 (3,null)。

алгоритм
  • 2 个回答
  • 10 Views
Martin Hope
John
Asked: 2020-06-21 05:52:15 +0000 UTC

如何使用 X.509 证书?

  • 0

假设我想编写 2 个控制台程序:一个客户端和一个服务器。我将创建自签名证书,将它们安装在客户端计算机(此处为受信任的 .cer)和服务器(此处为私钥 .pfx)上。我正在使用 c#。

  1. 如何将我的服务器控制台与证书绑定?似乎在 Web 服务器(例如 IIS)中可以安装证书,也就是说,这是服务器应用程序与特定证书的绑定。如何在没有 Web 服务器的情况下将证书与程序链接?我是否需要以某种方式考虑应用程序代码中将是 https 的事实?

  2. 如何在客户端控制台上检查证书?听说这个逻辑是用浏览器写的。以编程方式从存储中提取证书并规定与来自服务器本身的证书进行比较的逻辑,或者您可以通过 cmd 将程序与证书链接起来,操作系统会自行检查所有内容?

c#
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5