根据这篇博客文章,在性能和诊断方面有一种称为Visual Studio网络工具的东西,但我找不到它.如果我开始一个新的性能分析会话,我有各种工具(CPU,内存),但没有网络.在Visual Studio 2015和2017中都有尝试.
我不确定在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如何初始化任何东西?变量的名称是什么,如何在循环逻辑中使用它?
使用以下行禁用系统睡眠时:
SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_AWAYMODE_REQUIRED);
Run Code Online (Sandbox Code Playgroud)
我怎么知道它有效?例如,在我的一台计算机上,它不起作用.计算机stil进入睡眠状态但没有例外.如果没有异常,还有其他方法可以知道对SetThreadExecutionSTate的调用失败了吗?
我有以下观点:
@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) 自从对我的传播完成管道进行了最后一次更改后,我的一个缓冲区块从未完成。让我总结一下什么是有效的,什么不再是:
以前工作:
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 永远不会完成,即使链接到它的块已完成并传播其完成,并且从它链接的块接收所有缓冲项。
我正在尝试使用以下代码定义一个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中做错了什么?
假设我有一个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)
这是困难的一个.使用完全相同的查询字符串,完全相同的以下代码:
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()它替换那条线就行了.有什么建议?
从未来的更新: 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# ×5
.net ×4
asp.net-mvc ×2
asynchronous ×2
razor ×2
dataflow ×1
html5 ×1
http ×1
jquery ×1
networking ×1
pinvoke ×1
sql-server ×1
tpl-dataflow ×1
windows ×1