小编Paw*_*hra的帖子

Math.Pow()是如何在.NET Framework中实现的?

我一直在寻找用于计算的有效方法b(说a = 2b = 50).为了开始,我决定看一下Math.Pow()函数的实现.但在.NET Reflector中,我发现的只有:

[MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical]
public static extern double Pow(double x, double y);
Run Code Online (Sandbox Code Playgroud)

当我调用Math.Pow()函数时,我可以看到内部发生了什么的一些资源?

.net c# pow

427
推荐指数
3
解决办法
4万
查看次数

RxJava和观察者代码的并行执行

我使用RxJava Observable api获得以下代码:

Observable<Info> observable = fileProcessor.processFileObservable(processedFile.getAbsolutePath());
    observable
      .buffer(10000)
      .observeOn(Schedulers.computation())
      .subscribe(recordInfo -> {
        _logger.info("Running stage2 on thread with id : " + Thread.currentThread().getId());
          for(Info info : recordInfo) {
            // some I/O operation logic
         }
      }, 
      exception -> {
      }, 
      () -> {
      });
Run Code Online (Sandbox Code Playgroud)

我的期望是,在指定了计算调度程序之后,观察代码即subscribe()方法中的代码将并行执行.相反,代码仍然在单个线程上顺序执行.如何使用RxJava api使代码并行运行.

java system.reactive rx-java

26
推荐指数
2
解决办法
2万
查看次数

做int参数获取框?

说我有以下代码:

void Main()
{
    int a = 5;
    f1(ref a);
}

public void f1(ref int a)
{
    if(a > 7) return;
    a++;
    f1(ref a);
    Console.WriteLine(a);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

8 8 8 
Run Code Online (Sandbox Code Playgroud)

即,当堆栈展开时,保持ref参数的值.

这是否意味着将ref keywordint parameter使其得到盒装?
在递归调用期间,实际堆栈如何?

.net c# recursion

19
推荐指数
3
解决办法
1805
查看次数

IL代码接口

我正在使用LinqPad,因为我正在查看为以下接口和实现接口的类生成的IL代码(编译器优化已打开):

public interface IStockService
{
    [OperationContract]
    double GetPrice(string ticker);
}

public class StockService : IStockService
{
    public double GetPrice(string ticker)
    {
        return 93.45;
    }
}
Run Code Online (Sandbox Code Playgroud)

IL代码:

IStockService.GetPrice:

StockService.GetPrice:
IL_0000:  ldc.r8      CD CC CC CC CC 5C 57 40 
IL_0009:  ret         

StockService..ctor:
IL_0000:  ldarg.0     
IL_0001:  call        System.Object..ctor
IL_0006:  ret         
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,我没有看到任何用于界面的IL代码.这是因为LinqPad的工作方式还是C#编译器以不同的方式处理接口?

.net c# interface linqpad

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

为什么CLR重新抛出ThreadAbortException?

我从"Windows上的并发编程"一书中获得了以下代码:

void Main()
{
    try
    {
        try
        {
            Console.WriteLine("Inside Main Method");
            Thread.CurrentThread.Abort();
        }
        catch(ThreadAbortException)
        {
            Console.WriteLine("Inside First Catch");
            // Trying to swallow but CLR throws it again....
        }
    }
    catch(ThreadAbortException)
    {
        Console.WriteLine("Inside Second Catch");
        //Thread.ResetAbort();
    }
}
Run Code Online (Sandbox Code Playgroud)

我有兴趣知道为什么CLR会重新抛出ThreadAbortException?它一直这样做,直到我调用"Thread.ResetAbort()".其次,还有其他系统定义的异常,它会从CLR获得特殊处理吗?

c# clr multithreading threadabortexception

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

为什么LinkedListNode类是不可变的?

我很想知道为什么LinkedListNode类暴露的所有属性(Next,Previous,Value等)都是只读的,即这些属性没有相应的setter?

我试图解决一个小的链表相关的算法问题,并决定使用.Net的内置LinkedList类.但是由于LinkedListNode的类属性的只读行为,我无法覆盖值或更改任何给定节点的"Next"指针.

谢谢

.net c# linked-list

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

各个世代的垃圾收集和阈值

我下载了“ .Net内存管理的内幕 ”这本书的免费副本。在其中一章中,作者提到了各个世代的阈值,这些阈值将迫使GC收集该特定世代和所有其他子世代。确切的文字如下:

GC在以下情况之一下自动在单独的线程上运行。

任何一代中的对象大小达到特定于一代的阈值时。确切地说,在以下情况下:

  • Gen 0命中〜256 K
  • Gen 1命中〜2 MB(此时GC收集Gen 1和0)
  • Gen 2达到约10 MB(此时GC收集了Gen 2、1和0)

值得牢记的是,上述阈值仅仅是开始级别,因为.NET会根据应用程序的行为来修改级别。

我想知道是否有一种方法可以计算出给定应用程序正在运行时,Generation-2的当前阈值是多少。

.net c# garbage-collection

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

Kafka-提取具有相关ID的元数据时出错

我在本地设置了Kafka集群。具有属性的三个经纪人:

broker.id=0
listeners=PLAINTEXT://:9092

broker.id=1
listeners=PLAINTEXT://:9091

broker.id=2
listeners=PLAINTEXT://:9090
Run Code Online (Sandbox Code Playgroud)

一切正常,但我现在遇到错误:

提取具有关联ID 1的元数据时发生警告错误:{TRAIL_TOPIC = LEADER_NOT_AVAILABLE}(org.apache.kafka.clients.NetworkClient)

我也试图通过基于Java的客户端编写消息,但出现错误:无法在6000ms内获取元数据。

apache-kafka apache-zookeeper

5
推荐指数
0
解决办法
7641
查看次数

纱线和 --archives 选项上的火花

我正在尝试利用 spark-on-yarn 中可用的 --archives 选项来上传存档文件。基于文档 & 如本问题所述,yarn 不仅会上传 zip 文件,还会自动在工作节点上解压缩 zip 文件。

从日志中,我可以看到纱线正在将 jar 上传到 spark 的暂存目录中,例如

17/09/19 01:28:57 INFO Client: Uploading resource file:/home/foo/bar/zoo.zip -> hdfs://abc.foo.bar:8020/user/xyz/.sparkStaging/application_1503584958553_4501/zoo.zip
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,虽然 zip 文件被复制到 spark 暂存目录中,但它不会自动取消归档,我猜它也不会被复制到工作节点中。

假设 yarn 没有解压 zip 文件,有没有办法以编程方式访问工作节点的位置?

我正在针对具有纱线 2.7 的 emr 5.8 运行 spark 2.2。

hadoop hadoop-yarn apache-spark

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

Int vs Double并除以零异常

当整数除以零时,我们得到编译时错误;而在double的情况下,没有编译错误,但在运行时,我们得到无穷大/ NaN作为结果.知道为什么int和double在除零异常时会有不同的行为吗?

void Main()
{
    int number = 20;
    var result1 = number/0; // Divide by zero compile time exception

    double doubleNumber = 20;
    var result2 = doubleNumber/0.0; // no compile time error. Result is infinity or NaN
}
Run Code Online (Sandbox Code Playgroud)

.net c# divide-by-zero

4
推荐指数
1
解决办法
5286
查看次数

为什么var求值为int而不是double?

在下面的代码中,为什么编译器将结果变量计算为3(整数)而不是3.5(浮点数或双精度数)?

void Main()
{
    var result = 7/2;
    Console.WriteLine(result);
}
Run Code Online (Sandbox Code Playgroud)

谢谢

.net c#

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

基于值为null或"00"从get返回

有人能告诉我这是否是有效的代码:

get
{
    return string.IsNullOrEmpty(TopicID) ? null : 
           TopicID == "00" ? "All Topics" :     
           int.Parse(TopicID).ToString();
}
Run Code Online (Sandbox Code Playgroud)

我希望get返回null,如果它是"00"则返回单词"All Topics"或返回没有前导零的数字.

代码看起来很乱,但我不确定是否有更简洁的方法让我编写代码.

c#

0
推荐指数
1
解决办法
37
查看次数

VS 2012和IIS Express.找不到路径'C:\ Program Files(x86)\ IIS Express \〜\ MyPics\My.jpg'的一部分

我正在使用VS 2012开发Asp.Net MVC 4应用程序.在本地运行的应用程序使用IIS Express作为Web服务器.我在尝试访问作为我的解决方案一部分的文件时遇到问题.我有以下操作方法:

public FileContentResult GetImage()
        {
            byte[] imageByte = System.IO.File.ReadAllBytes(@"/MyPics/My.jpg");
            string contentType = "image/jpeg";

            return File(imageByte, contentType);
        }
Run Code Online (Sandbox Code Playgroud)

在第一行中,我收到以下错误:

Could not find a part of the path 'C:\Program Files (x86)\IIS Express\~\MyPics\My.jpg'
Run Code Online (Sandbox Code Playgroud)

我知道上面的路径不正确,但我无法理解为解决这个问题我应该提供什么路径.

关心Pawan Mishra

c# iis-express visual-studio-2012

0
推荐指数
1
解决办法
8233
查看次数