小编Lui*_*rao的帖子

如何在Visual Studio中查看网络流量

根据这篇博客文章,在性能和诊断方面有一种称为Visual Studio网络工具的东西,但我找不到它.如果我开始一个新的性能分析会话,我有各种工具(CPU,内存),但没有网络.在Visual Studio 2015和2017中都有尝试.

networking http visual-studio visual-studio-2017

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

Parallel ForEach的本地初始化如何工作?

我不确定在Parallel.ForEach中使用本地init函数,如msdn文章中所述:http://msdn.microsoft.com/en-us/library/dd997393.aspx

Parallel.ForEach<int, long>(nums, // source collection
   () => 0, // method to initialize the local variable
   (j, loop, subtotal) => // method invoked by the loop on each iteration
   {
      subtotal += nums[j]; //modify local variable 
      return subtotal; // value to be passed to next iteration
   },...
Run Code Online (Sandbox Code Playgroud)

()=> 0如何初始化任何东西?变量的名称是什么,如何在循环逻辑中使用它?

c# task-parallel-library

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

如何检查使用SetThreadExecutionState禁用睡眠是否失败?

使用以下行禁用系统睡眠时:

SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_AWAYMODE_REQUIRED);
Run Code Online (Sandbox Code Playgroud)

我怎么知道它有效?例如,在我的一台计算机上,它不起作用.计算机stil进入睡眠状态但没有例外.如果没有异常,还有其他方法可以知道对SetThreadExecutionSTate的调用失败了吗?

c# windows pinvoke

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

不显眼的验证忽略data-val属性,但使用class ="required"

我有以下观点:

@using (Html.BeginForm())
{
    <div class="left-column">
        @Html.LabelFor(m => m.Expression)
        @Html.TextAreaFor(m => m.Expression, new { @spellcheck = "false" })
        @Html.EditorFor(m => m.Sku)
    </div>
}
Run Code Online (Sandbox Code Playgroud)

使用以下JavaScript在计时器上每秒运行一次:

$("form").validate();

if ($("form").valid()) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

为文本区域元素生成以下html(唯一需要验证的元素):

<textarea 
    data-val="true"
    data-val-required="The Expression field is required."
    cols="20" rows="2"
    id="Expression" name="Expression"
    spellcheck="false">
</textarea>
Run Code Online (Sandbox Code Playgroud)

问题是验证没有做任何事情,除非我使用浏览器工具手动添加class ="required".如果我执行此验证工作并显示错误消息"需要表达式字段".确切地说"$("form").valid()"即使textarea为空,也总是返回true.由于我使用的是自动生成data-val属性的anotations,我想依赖它们.我究竟做错了什么?

仅供参考我的脚本参考如下:

<script src="/Scripts/modernizr-2.0.6-development-only.js" ...
<script src="/Scripts/jquery-1.6.2.js" ...
<script src="/Scripts/Parser.js" ...
<script src="/Scripts/jquery.unobtrusive-ajax.js" ...
<script src="/Scripts/jquery.validate.js" ...
<script src="/Scripts/jquery.validate.unobtrusive.js" ...
Run Code Online (Sandbox Code Playgroud)

jquery html5 jquery-validate razor unobtrusive-validation

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

TPL 数据流块永远不会在 PropagateCompletion 上完成

自从对我的传播完成管道进行了最后一次更改后,我的一个缓冲区块从未完成。让我总结一下什么是有效的,什么不再是:

以前工作:

A.LinkTo(B, PropagateCompletion);
B.LinkTo(C, PropagateCompletion);
C.LinkTo(D, PropagateCompletion);
D.Receive();

// everything completes
Run Code Online (Sandbox Code Playgroud)

不再工作:

A.LinkTo(B, PropagateCompletion);
C.LinkTo(D, PropagateCompletion);

await A.Completion;
someWriteOnceBlock.Post(B.Count);
// B.Complete(); commented on purpose
B.LinkTo(C, PropagateCompletion);

D.Receive();

// Only A reaches completion
// B remains in 'waiting for activation'
// C executes but obviously never completes since B doesn't either
Run Code Online (Sandbox Code Playgroud)

如果我取消注释注释行,一切正常,但显然该行不是必需的。

不知何故,我的 BufferBlock B 永远不会完成,即使链接它的块已完成并传播其完成,并且它链接的块接收所有缓冲项。

.net c# dataflow task-parallel-library tpl-dataflow

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

如何为布尔值创建编辑器模板?(.EditorFor <>)

我正在尝试使用以下代码定义一个Boolean.cshtml以与EditorFor一起使用:

@{
   var o = ViewData.ModelMetadata;
}

<div class="editor-for">
    @Html.CheckBox(o.PropertyName,
                   ViewData.Model,
                   new { @class="tickbox-single-line" })
</div>
Run Code Online (Sandbox Code Playgroud)

不幸的是,Model为null,我得到以下非描述性错误:

CS1973:'System.Web.Mvc.HtmlHelper'没有名为'CheckBox'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法.

看完之后我尝试了以下内容:

@Html.CheckBox(o.PropertyName,
               ViewData.Model ?? false,
               new { @class="tickbox-single-line" })
Run Code Online (Sandbox Code Playgroud)

但我得到完全相同的错误.View代码很简单:

@Html.EditorFor(m => m.RememberMe)
Run Code Online (Sandbox Code Playgroud)

我在Boolean.cshtml中做错了什么?

.net asp.net-mvc razor

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

如何反转System.Predicate <T>

假设我有一个Predicate<T>,并且我想调用方法foo,并且谓词返回true,我想调用方法栏,谓词返回false,我该怎么做:

Predicate<int> p = i => i > 0
foo(p);
bar(!p); // obviously this doesn't work
Run Code Online (Sandbox Code Playgroud)

如果谓词是a Func<int, bool> f,我可以!f(i)

.net c#

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

DbConnection.Open()有效,但dbConnection.OpenAsync()不起作用

这是困难的一个.使用完全相同的查询字符串,完全相同的以下代码:

using (var db = new SqlConnection(queryString))
{
   await db.OpenAsync();
   var results = await db.ExecuteSomethingAsync...;
   db.Close();
{
Run Code Online (Sandbox Code Playgroud)

从Windows应用程序运行时将工作.然而,await OpenAsync()当从IIS Express或IIS 7运行时,它将永远陷入困境.如果我用db.Open()它替换那条线就行了.有什么建议?

.net sql-server asp.net-mvc asynchronous

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

异步异常未被捕获或被吞没

从未来的更新: TL; DR赶上你要异步方法表达await,Task.WaitAll.Result.

我创建了一个有点复杂的异步方法,只运行其他异步方法.您可以忽略大部分内容,因为只有行var mSpekTask ...是有意义的,我也不关心逻辑,我只想知道我的异常去了哪里.我的主要问题是ex.ToString()永远不会被击中,即使在mSpecTask内部确实发生了异常.

public async Task LoadAsync(IEnumerable<ProductRequest> feed, int? customerId,
      IProgress<int> mSpecProgress, Action<Task> mSpecCompletionHandler)
  {
        var ids = feed.Select(x => x.ProductId.ToString()).Distinct().ToList();

        try
        {
           var mSpecTask = this.LoadMSpecAsync(mSpecProgress, ids);
        }
        catch (Exception ex)
        {
           ex.ToString();
        }
  }
Run Code Online (Sandbox Code Playgroud)

这是LoadMSpecAsync的代码

public Task<ResultSet> LoadMSpecAsync(IProgress<int> prg,
     IEnumerable<string> ids)
  {
     return this.LoadAsync(prg, ids, Selector.M, SPMS, x => x.Order);
  }
Run Code Online (Sandbox Code Playgroud)

下面是LoadAsync的代码,等待db.ExecuteTVP(progress,spName,id,parameters)生成异常.

      private async Task<Dictionary<Pair, dynamic>> LoadAsync(IProgress<int> progress,
     IEnumerable<string> ids, Selector s, string spName, Func<dynamic, int> k,
      Func<dynamic, dynamic> …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous task-parallel-library

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