- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在我使用并行方法来检查 200 状态代码的 url,但这是一种缓慢的方法。现在我正在尝试将我的代码移动到 await/async 方法,但它不起作用
private async void button1_Click(object sender, EventArgs e)
{
DateTime start = DateTime.Now;
var timerPostingSpeed = new Timer(state =>
{
TimeSpan elapsed = DateTime.Now - start;
string postingSpeed = string.Format("{0:0}",
finishedUrls * 60 / (int)elapsed.TotalSeconds);
UpdatingLabel(label1, postingSpeed);
}, null, 5000, 10000);
IEnumerable<string> urls = File.ReadLines("urls.txt");
var engine = Python.CreateEngine();
var scriptSource =
engine.CreateScriptSourceFromString(@"
if Open(__URL).Result:
print 1
");
await urls.ForEachAsync(20, async line =>
{
try
{
var adderEngine = new SpeedEngine();
// int zz = await adderEngine.Open(line);
// return;
ScriptScope scope = engine.CreateScope();
scope.SetVariable("__URL", line);
scope.SetVariable("Open",
new Func<string, Task<int>>(adderEngine.Open));
try
{
await scriptSource.Execute(scope);
}
catch (UnboundNameException une)
{
MessageBox.Show(une.Message,
msg.
MySeoBoxForm_startPostingToolStripButton_Click_Unbound_Name_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (SyntaxErrorException see)
{
MessageBox.Show(
string.Format("{0}\nLine: {1}\nCode: {2}",
see.Message,
see.Line, see.GetCodeLine()),
msg.
MySeoBoxForm_startPostingToolStripButton_Click_Syntax_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (MissingMemberException mme)
{
MessageBox.Show(mme.Message, "Missing Member",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (ArgumentTypeException ate)
{
MessageBox.Show(string.Format("{0}", ate.Message),
msg.
MySeoBoxForm_startPostingToolStripButton_Click_Syntax_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (SystemExitException)
{
}
catch (Exception exc)
{
MessageBox.Show(string.Format("{0}", exc.Message),
msg.
MySeoBoxForm_startPostingToolStripButton_Click_Syntax_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
MessageBox.Show(string.Format("{0}","OK"),
msg.
MySeoBoxForm_startPostingToolStripButton_Click_Syntax_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception exc)
{
MessageBox.Show(string.Format("{0}", exc.Message),
msg.
MySeoBoxForm_startPostingToolStripButton_Click_Syntax_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Interlocked.Increment(ref finishedUrls);
numericUpDown1.Invoke(new MethodInvoker(delegate
{
numericUpDown1.Value++;
}));
}
});
timerPostingSpeed.Dispose();
}
}
public async Task<int> Open(string siteUrl)
{
Uri newUri;
if (!Uri.TryCreate(siteUrl, UriKind.Absolute, out newUri)) return 0;
_uri = _openUri = newUri;
_req = new HttpRequestMessage(HttpMethod.Get, _uri);
_response = await _httpClient.SendAsync(_req);
if (_response == null || !_response.IsSuccessStatusCode)
{
return 0;
}
return 1;
}
我需要使用 Iron Python - 没有它(当我取消注释 await adderEngine.Open(line); return; 时)一切正常。但是使用 Iron Python 我的应用程序停止在 *_response = await _httpClient.SendAsync(_req);* 没有错误。当我更换时我也注意到了
await urls.ForEachAsync(20, async line =>
与:
await urls.ForEachAsync(1, async line =>
它在工作
ForEachAsync:http://blogs.msdn.com/b/pfxteam/archive/2012/03/05/10278165.aspx
有什么帮助吗?
最佳答案
如果您的 Python 代码正在调用 Task.Result
,并且您在 UI 线程上(似乎是这种情况),you can cause a deadlock (我在我的博客上对此进行了全面解释)。简而言之,async
方法 (Open
) 试图在 UI 线程上恢复执行,但是 UI 线程被调用 Result
阻塞了。
据我所知,Python 没有async
/await
支持,但是你应该可以使用ContinueWith
(meh) 或者写一些类似的东西Task
和 Twisted 的 Deferred
之间的桥梁(更酷)。
关于c# - 与 Iron Python 异步等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669905/
我阅读了一些关于 Iron javascript 的内容,但我要去哪里下载它? http://dotnet.dzone.com/articles/pumping-iron-javascript. 最佳
我正在尝试让一个简单的 Iron 示例起作用: extern crate iron; extern crate router; use iron::prelude::*; use iron::stat
我一直梦想从脚本语言创建一个“真正的 exe”。随着基于 DLR 的 Python 和 Ruby 实现可用,这是否更接近现实? 我想创建一个“真正的应用程序”: 一个 Windows 窗体应用程序 控
我正在通过iron.io入门指南进行操作:http://dev.iron.io/worker/getting_started/ 我正在采取步骤: Push it to Docker Hub and r
我在使用 iron-scroll-threshold 以及与其他页面共享同一主机的 iron-page 时遇到问题。 我的应用程序 UI 顶部有 paper-tabs。随着选项卡的更改,页面会延迟加载
我最近一直在使用 Polymer,我有一个熨斗选择器,在纸质抽屉中放满了纸质图标元素以供导航之用。但出于某种原因,我无法让他们链接: Home
我正在使用 Polymer 1.0 和 Golang 1.5。 我从 Go 发送一个带有 400 Bad Request 和一些内容的 json 响应,如下所示: d := struct{ M
我想花一些时间来了解更多关于构建在 DLR 之上的动态语言的知识,但我不确定哪种语言更适合学习。 时间有限,我真的只有时间去学习其中之一。 从长远来看,关于这两者(Iron Ruby 或 Iron P
我正在尝试运行 O'Reilly 出版的 Programming Rust 一书中的示例,但我坚持要使以下代码成功编译: Cargo.toml [package] name = "gcd-online
我正在探索 Iron Web 框架的功能。据我所知,Iron core 没有可处理的 APIHTTP 参数,所以我尝试使用 params crate。 error: the trait bound `
您会推荐 Iron Ruby、Iron Python 或 PowerShell 来使 C# 应用程序成为脚本宿主吗? 经过一些快速的修改,现在我倾向于 powershell 主要有两个原因(请注意,这
我正在尝试为 Iron 请求创建一个处理程序: extern crate iron; extern crate mount; use iron::{Iron, Request, Response, I
在 Polymer 文档 ( https://elements.polymer-project.org/elements/iron-input ) 中,我发现: 而在另一个官方文档(https://
在生产系统中开始使用 Iron Ruby 和 Iron Python 可以吗?此外,托管它们是否有任何其他要求? 另外,考虑到 F# 是一种与 Python 相同的函数式编程语言,在 .NET 框架中
在模板助手中,我从 Iron.Router (iron:router) 获取当前路径如下: Router.current().route.path(this); 这工作正常,除非路由路径确实包含参数
polymer 1.* 在父元素中,我使用Polymer.IronValidatableBehavior。 我的回调函数 arg this.setInvalidStates 存在范围问题。在子元素 b
所以我试图创建一个 DataGridViewColumn 的子类,它既有一个无参数构造函数,又有一个采用一个参数的构造函数,该参数需要 DataGridViewCell 类型。这是我的课: class
我在一个相当复杂的应用程序中使用 Iron Router,并且有一些路由将用户重定向到其他内部路由(例如, "/" 总是重定向到 "/dashboard" )。 我们一直在通过添加例如Router.g
有没有办法在IronRouter中进入下一页之前获取上一页位置? 有没有我可以用来获取这些信息的事件? 提前致谢。 最佳答案 由于 Iron Router 使用通常的 History API,因此您可
我有这个元素: ... Polymer({ ... _handleResponse: function(event){ co
我是一名优秀的程序员,十分优秀!