小编pau*_*ter的帖子

调试期间IDE左边缘显示的图标

在调试过程中,我看到这两个符号(以绿色矩形显示).有人可以帮我理解这些表明了什么吗?

在此输入图像描述

debugging visual-studio-2012

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

无法覆盖变量,因为它是只读的

我正在努力学习Powershell.我有以下脚本:

$cmd = {
  param($pid)
  Write-Host $pid
}

$processes = Get-Process -Name notepad
foreach ($process in $processes) 
{ 
    $pid = $process.ID
    Start-Job -ScriptBlock $cmd -ArgumentList $pid
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无法覆盖变量PID,因为它是只读或常量.在行:7 char:1 + $ pid = 1 + ~~~~~~~~ + CategoryInfo:WriteError:(PID:String)[],SessionStateUnauthorizedAccessException + FullyQualifiedErrorId:VariableNotWritable无法覆盖变量PID,因为它是只读的或不变.在行:11 char:1 + $ pid = $ process.ID + ~~~~~~~~~~~~~~~~~~ + CategoryInfo:WriteError:(PID:String)[],SessionStateUnauthorizedAccessException + FullyQualifiedErrorId :VariableNotWritable Start-Job:无法覆盖变量pid,因为它是只读或常量.在行:12 char:5 + Start-Job -ScriptBlock $ cmd -ArgumentList $ pid

我在这做错了什么?

windows powershell

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

获取 LOH 中的对象实例列表

我在托管堆中存在数百个MyClass实例。其中一些位于大对象堆中。下面是各种堆结构的样子

0:000> !EEHeap -gc
Number of GC Heaps: 1
generation 0 starts at 0x0000000002df9de8
generation 1 starts at 0x0000000002dc6710
generation 2 starts at 0x0000000002a01000
ephemeral segment allocation context: none
 segment     begin allocated  size
0000000002a00000  0000000002a01000  0000000002e3c2c0  0x43b2c0(4436672)
Large object heap starts at 0x0000000012a01000
 segment     begin allocated  size
0000000012a00000  0000000012a01000  000000001a5ed558  0x7bec558(129942872)
000000002a980000  000000002a981000  00000000328110b8  0x7e900b8(132710584)
0000000033e00000  0000000033e01000  000000003bd80d78  0x7f7fd78(133692792)
000000001daf0000  000000001daf1000  0000000025996188  0x7ea5188(132796808)
00000000542b0000  00000000542b1000  000000005a4bf100  0x620e100(102818048)
000000005c2b0000  000000005c2b1000  000000006344df88  0x719cf88(119132040)
000000007fff0000  000000007fff1000  00000000878bfbc0  0x78cebc0(126675904)
Total Size:              Size: …
Run Code Online (Sandbox Code Playgroud)

.net windbg sos large-object-heap sosex

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

可以作为参数传递给POST方法的对象的最大大小

我有一个带有POST方法的Web API控制器,如下所示.

public class MyController : ApiController
{
    // POST: api/Scoring
    public HttpResponseMessage Post([FromBody]MyClass request)
    {
        // some processing of request object
        return Request.CreateResponse(HttpStatusCode.OK, someResponseObject);
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)

这由HTTPClient消耗如下

HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.BaseAddress = new Uri("http://localhost");
MyClass requestClient = new MyClass();
var task = httpClient.PostAsJsonAsync("api/my", requestClient)
Run Code Online (Sandbox Code Playgroud)

当在控制器的POST方法参数中传递的MyObject对象大小很小时,它工作得很好.但是,如果此对象大小很大,我在POST方法参数中获取请求对象的null.在一种情况下,从客户端请求传递的requestClient对象的大小约为5 MB,在POST方法中,我将请求对象作为null.请注意,Web API托管在IIS下.我是否需要根据允许的尺寸更改设置.

更新: 在web.config中添加以下内容解决了POST方法参数中的空对象问题.

httpRuntime maxRequestLength ="2147483647"/>

然后我将requestClient对象的大小增加到~50MB.现在POST方法中的代码永远不会受到攻击.在客户端,在调用PostAsJsonAsyn时,我得到System.Net.HttpRequestException并带有以下消息.

响应状态代码不表示成功:404(未找到).

现在改变maxRequestLength似乎没有任何影响.

c# iis-7 httpclient .net-4.5 asp.net-web-api

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

进程及其线程消耗的 CPU 时间

我试图了解应用程序中各种线程消耗的 CPU 时间的数学计算。.time下面的命令告诉我,我的进程启动了大约 7 分钟,据我所知,这基本上是该进程总体消耗的 CPU 时间。基于此,单个线程消耗的时间加起来也应该是 7 分钟,但远远超过 7 分钟。

0:140> .time
Debug session time: Fri May  8 15:05:16.000 2015 (UTC - 4:00)
System Uptime: 22 days 17:00:27.560
Process Uptime: 0 days 0:06:45.000
  Kernel time: 0 days 0:00:23.000
  User time: 0 days 0:26:24.000
0:140> !runaway
 User Mode Time
  Thread       Time
   8:39f4      0 days 0:01:46.236
 126:1184      0 days 0:01:45.394
 136:b9c       0 days 0:01:42.851
 117:37c8      0 days 0:01:42.009
 132:fb8       0 days 0:01:38.046
 135:4a94      0 days 0:01:33.834
 131:3dd0      0 days …
Run Code Online (Sandbox Code Playgroud)

.net multithreading windbg sos cpu-usage

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

试图了解 ConcurrentDictionary 的工作原理

如果值不存在,我想将其初始化为 0。否则它应该增加现有值。

ConcurrentDictionary<int, int> dic = new ConcurrentDictionary<int, int>();
dic.AddOrUpdate(1, 0, (key, old) => old++);
dic.AddOrUpdate(2, 0, (key, old) => old++);
Run Code Online (Sandbox Code Playgroud)

此时,字典的键为 1 和 2,每个值为 0。

        dic.AddOrUpdate(1, 0, (key, old) => old++);
Run Code Online (Sandbox Code Playgroud)

此时,键 1 的值应该是 1,而键 2 的值应该是 0,但是,两者的值都是 0。知道为什么吗?

c# .net-4.0 concurrentdictionary

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

如何在按值过滤时检索键

ConcurrentDictionary<int, int> dic = new ConcurrentDictionary<int, int>();
dic.AddOrUpdate(1, 2, (s, i) => 0);
dic.AddOrUpdate(2, 3, (s, i) => 0);
dic.AddOrUpdate(3, 1, (s, i) => 0);
dic.AddOrUpdate(4, 7, (s, i) => 0);
Run Code Online (Sandbox Code Playgroud)

我只想选择值大于5的键.我该怎么做?

c# .net-4.0 concurrentdictionary

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

将两个LINQ表达式合并为一个

在这种情况下,我有两个不同的LINQ表达式来从两个不同条件的产品计数.我只是好奇是否可以从一个LINQ表达式中检索这两个计数?

class Program
{
    static void Main(string[] args)
    {
        List<Product> Products = new List<Product>()
        {
            new Product() { ID = 1 },
            new Product() { ID = 2 },
            new Product() { ID = 3 },
            new Product() { ID = 4 },
            new Product() { ID = 5 },
            new Product() { ID = 6 }
        };

        int all = Products.Count();
        int some = Products.Where(x => x.ID < 2).Count();
    }
}

public class Product
{
    public int ID { …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

如何在这里传递一个Func

假设我有一个像下面这样的课程.

public class Circle
{
    private double radius;
    public double GetArea(Func<double, double> operand)
    {
        return operand(radius);
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何在运行时传递Func来进行必要的计算

c# func

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