I m同时运行。 对7500多件物体的 lo。 除此以外,我还要向每个目标做一些事情,具体来说,需要两个网络服务和两个内部方法。 网络服务只是检查标的、处理和归还一个插图,然后将它作为物上的财产。 采用两种内部方法。
我不想在磁盘上写任何东西或从磁盘上读。
我也用一个标签和进步条码更新了信标,让用户知道它在哪里。 该法典:
var task = Task.Factory.StartNew(() =>
{
Parallel.For(0, upperLimit, (i, loopState) =>
{
if (cancellationToken.IsCancellationRequested)
loopState.Stop();
lblProgressBar.Invoke(
(Action)
(() => lblProgressBar.Text = string.Format("Processing record {0} of {1}.", (progressCounter++), upperLimit)));
progByStep.Invoke(
(Action)
(() => progByStep.Value = (progressCounter - 1)));
CallSvc1(entity[i]);
Conversion1(entity[i]);
CallSvc2(entity[i]);
Conversion2(entity[i]);
});
}, cancellationToken);
这是在Win7 32bit机器上进行的。
是否有任何想法,说明为何在加油人约1370人时突然冻结这种冻结?
任何想法,我如何能够对此进行ug弄,看看什么会lock什么?
EDIT:
Some answers to the comments below:
@BrokenGlass - No, no interop. I ll try the x86 compilation and let you know.
@chibacity - 因为它承担着一项背景任务,所以它不冻结该调查。 直至冻结时,进展节奏和贴标签大约每秒2次。 冻结时,它只是停止行动。 我可以核实,它停止处理的次数已经处理,但不再处理。 在行动期间,CPU的双重核心2.2GHz使用率最低,每套3-4%,一旦冻结1-2%。
@Henk Holterman - 大约需要10-12分钟才能到达1360年,如果是,我可以核实所有这些记录均已处理,但不是其余的记录。
@CodeIn 混乱—— 感谢 我试图这样做! 如果我同时行事,守则就能够发挥作用,它只是永远和一天。 我曾试图限制read子的数量,但会这样做。
EDIT 2:
Some details as to what s going on with the webservices
Basically what s going on with the web services is that they pass in some data and receive data (an XmlNode). That node is then used in the Conversion1 process which in turn sets another property on the entity which is sent to the CallSvc2 method and so on. It looks like this:
private void CallSvc1(Entity entity)
{
var svc = new MyWebService();
var node = svc.CallMethod(entity.SomeProperty);
entity.FieldToUpdate1.LoadXml(node.InnerXml);
}
private void Conversion1(Entity entity)
{
// Do some xml inspection/conversion stuff
if (entity.FieldToUpdate1.SelectSingleNode("SomeNode") == "something") {
entity.FieldToUpdate2 = SomethingThatWasConverted;
}
else {
// Do some more logic
}
}
private void CallSvc2(Entity entity)
{
var svc = new SomeOtherWebService();
var xmlNode = svc.MethodToCall(entity.FieldToUpdate2.InnerXml);
entity.AnotherXmlDocument.LoadXml(xmlNode.InnerXml);
}
你可以看到,它非常直截了当。 在一些转换方法中,仍有许多工作要做,但任何一种做法都不应阻碍。 如下文所述,在网络服务电话中,有1024处“等待”状态。 页: 1 在32台轨道机上,MaxThreads被拖欠至1023。
鉴于我在这里有的话,我怎么能够释放那些等待读物的人?