草庐IT

c++ - steady_clock 的纪元是相对于操作系统启动的时间吗?还是过程本身?

使用boost::chrono::steady_clock或std::chrono::steady_clock可以保证物理时间始终是单调的并且不受日期时间的影响系统的变化。这是我的问题,如果我有两个需要不受系统日期时间变化影响的进程,是否仅交换time_since_epoch就足够了?换句话说,两个进程的时间解释到同一时间以来的epoch会是一样的吗?具体来说,我需要针对Windows和QNX回答这个问题。编辑:两个进程都在同一台计算机、同一操作系统中运行,并通过IPC调用进行通信。 最佳答案 不,系统之间的时间不可互换,因为C++

C#,编写更长的方法还是更短的方法?

我对此有两种相互矛盾的看法。一些消息来源说应该有更少的小方法来减少方法调用,但其他一些消息来源说编写更短的方法有利于让JIT进行优化。那么,哪一方是正确的? 最佳答案 在大多数情况下,实际进行方法调用的开销是无关紧要的。您永远不需要担心它,除非您可以清楚地识别出需要重新审视问题的问题(您不会)。更重要的是您的代码要简单、可读、模块化、可维护和可修改。方法应该做一件事,只做一件事,并将子事情委托(delegate)给其他例程。这意味着您的方法应该尽可能短,但不能更短。与试图超越编译器或运行时相比,通过拥有不易出错和错误的代码,您将看到

c# - 线程还是非线程

我正在构建一个相当简单的应用程序,它执行几个单独的HTTPWebRequests,每个都有自己的计时器。我不太可能需要同时运行3个以上的单独请求。如果一个TimerTick在另一个HTTPWebRequest正在进行时触发,那么TimerTick触发的事件会发生什么?我应该添加线程吗? 最佳答案 答案几乎总是——不,不要仅仅因为可以就使用线程。考虑先进行异步调用,因为这样更容易编写正确的代码。如果您需要额外的参数,它可能会更有效地使用资源(因为线程不是无限的资源)。链接:HowtouseHttpWebRequest(.NET)asy

c# - 我应该使用 int 还是 UInt16?

这可能有点微不足道,但在C#中,当在变量中存储网络端口时,您更喜欢int还是UInt16?框架类在处理网络端口时使用int,尽管UInt16实际上表示有效值。 最佳答案 signed(int/short等,而不是uint/ushort)具有作为CLS的优势合规,因此除非您有充分的理由,否则建议这样做。Reint与short-在大多数情况下,使用int(或uint),因为所有运算符都为此进行了优化。如果您只是存储和检索它,那么这当然不是问题。 关于c#-我应该使用int还是UInt16?,

c# - 检测 .NET 应用程序是在 Azure 中运行还是在非 Azure 环境中运行

我们目前正在将应用程序的一些实例移至Azure,但仍将保持与非Azure托管的现有实例的向后兼容性。有没有在非Azure生产服务器上不安装SDK就能检测环境的好方法?我试过使用:if(RoleEnvironment.IsAvailable)来自Microsoft.WindowsAzure.ServiceRuntime,它在本地和Azure中都能完美运行。但是,我需要将Microsoft.WindowsAzure.ServiceRuntime.dll设置为CopyLocal,即使这样我也会得到:Couldnotloadfileorassembly'msshrtmi,Version=2.2

c# - socket 应该保持打开还是拆除

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:ShouldIcloseasocket(TCPIP)aftereverytransaction?假设我有某种使用套接字的进程间通信。我的进程是否应该建立连接并保持打开状态(每个客户端1个线程或类似线程)在需要时发送数据;或者是一种更好的方法来简单地建立连接,发送我想要的数据,关闭它并再次进入我的等待状态?解决这个问题的方法通常是什么?

c# - 将条件替换为多态重构还是类似的?

我曾尝试问过这个问题的一个变种。我得到了一些有用的答案,但仍然没有什么对我来说很合适。在我看来,这真的不应该那么难,但我无法找到一个优雅的简单解决方案。(这是我的上一篇文章,但是请首先尝试看一下此处作为程序代码说明的问题,以免受到前面的解释的影响,该解释似乎导致非常复杂的解决方案:Designpatternforcostcalculatorapp?)基本上,问题是为可以包含许多服务的项目创建所需小时数的计算器。在这种情况下,是“写作”和“分析”。对于不同的服务,小时数的计算方式有所不同:通过将“每个产品”的小时率乘以产品数来计算写作,并且项目中包含的产品越多,小时率就越低,但是总的小时

c# - 用户的账户余额应该存储在数据库中还是动态计算?

用户的账户余额应该存储在数据库中还是动态计算?为了获得准确的结果,动态计算它是有意义的,但是当有很多用户并且数据库变得非常大时,这可能会成为一个问题?交易身份证(公钥)账号类型日期时间金额等等……等等……账户余额TransactionId(PK/FK)余额 最佳答案 为了保持准确的审计,您应该记录每笔影响用户账户余额的交易。这意味着您可以动态计算余额,但是出于性能原因,我也会存储余额。不过,为了确保余额正确,我每天都会运行一个作业,从头开始重新计算余额。 关于c#-用户的账户余额应该存储

c# - 如何检查(通用)数字类型是 C# 中的整数类型还是非整数类型?

我有一个通用类型T.使用Marc'sOperatorclass我可以对其进行计算。是否可以仅通过计算来检测类型是否为integral或nonintegral类型?也许有更好的解决方案?我更愿意支持任何可能的类型,所以我想防止硬编码哪些类型是整数/非整数。背景信息我发现自己的情况是我想投一个double至T但四舍五入到最接近的值T到double值(value)。inta=(int)2.6结果2虽然我希望它产生3,不知道类型(在本例中为int)。也可以是double,在这种情况下,我希望结果为2.6. 最佳答案 你试过了吗Convert

c# - 我应该实现 IEquatable 还是 IComparable?

我有课。这个类要表示的事物是这样的,我们可以谈论这样的事物彼此相等,我们也可以想出一个方案来对它们进行排名用于比较。然而,碰巧很少有人觉得需要对这些东西进行排序,但人们经常需要检查两个这样的东西是否相等。因此,我可以为我的类实现IEquatable以及IComparable。虽然IComparable提供了一些额外的功能,但不太可能有人会关心这些额外的功能。无论是在逻辑上还是在功能方面,两者似乎都没有提供明显的优势。我应该实现哪个接口(interface),IEquatable、IComparable或两者?为什么?(我特别想知道这两个接口(interface)对框架范围的影响)Thi