我有一个C#桌面应用程序框架4.5。
目前我正在使用系统,计时器将图像上传到我的网络服务器(尽可能快速有效。
这就是代码:
void tmrFeeder_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
tmrFeeder.Stop();
MotionFrame motion = GetNextUpload();
if (motion != null && motion.Frame != null)
{
request.UploadMotion(motion.Frame, Shared.Alias, motion.camIndex, motion.MessageLog);
}
}
catch (Exception ex)
{
evError();
}
finally
{
if (!stop)
{
tmrFeeder.Start();
}
}
}
我想知道如果我有一个多核处理器,我是否可以利用并行处理。
但在上面的场景中,上传图像的连续顺序至关重要。
所以,我对并行任务的理解会破坏我/我的规则。
然而,由于TPL告诉我它以最有效的方式利用处理器的硬件架构并负载平衡可用CPU内核的处理,因此我对此感兴趣。
反正是否有利于提高我的代码效率而不会丢失我的图像的连续顺序?
由于
答案 0 :(得分:1)
如果您关心上传订单,我无法看到TPL对您有什么好处。
它“利用硬件......并在可用的CPU核心上负载平衡处理”。 确实,在可以并行运行的任务上。你的任务不能。
你只需要分配一堆线程,它们什么都不做,只是排队等待轮到他们。