我只是想知道使用c#7.2中的NOWAIT
方法参数有什么缺点
我知道这是建议用于处理Structs并且他们说它不会increase performance that much但是我可以告诉它不会对代码产生任何负面影响,并且在进行递归时可能会帮助您处理堆栈溢出异常。
任何人都知道为什么所有方法都不应该标记为in
的充分理由?
I found为什么人们建议避免使用in
和ref
,但他们在这里不起作用。
答案 0 :(得分:1)
由于这是一个与性能相关的问题,因此引入了in
因为这个原因而引入的问题,如果没有真正衡量具体代码示例的性能,很难找到单一,正确的答案。
但是......
我们知道in
在x86操作系统上创建32bit
,在x64操作系统上创建64bit
。
现在考虑像
这样的结构struct Token
{
char x;
}
在x64操作系统上,在堆栈上复制此结构可能会比创建64bit
对相同数据的引用更快地执行。
另外,不要忘记,in
暗示实例上的“常量”,这超出了性能推理,直接针对您的设计。因此,虽然从性能相关问题来看,一些推理可能是有争议的,但从设计的角度来看,in
具有明确的语义,可以针对特定的设计用例。