首页 \ 问答 \ 帮助Task并行库使用(Help with Task parallel library usage)

帮助Task并行库使用(Help with Task parallel library usage)

我正在尝试使用任务并行库为一系列项目调度函数调用。

以下不起作用

List<Task> tasks = new List<Task>();

foreach(var someValue in aCollection)
{
   var t = Task.Factory.StartNew(() => DoSomeWork(someValue));
   tasks.Add(t);
}

Task.WaitAll(tasks.ToArray());

但下面的工作

Task.WaitAll(aCollection.Select(a => Task.Factory.StartNew(() => DoSomeWork(a))).ToArray());

对于第一种方法,它执行一次然后停止。 我不确定它是否会覆盖引用或其他内容。 有人可以。 说明?

还有一种方法可以将一些序列号传递给Task,可用于识别首先安排的任务。 我的意思是我想等待所有任务完成,然后根据集合中的顺序排序结果。


I am trying to schedule a function call for a sequence of items using Task parallel library.

The following does not work

List<Task> tasks = new List<Task>();

foreach(var someValue in aCollection)
{
   var t = Task.Factory.StartNew(() => DoSomeWork(someValue));
   tasks.Add(t);
}

Task.WaitAll(tasks.ToArray());

But the below works

Task.WaitAll(aCollection.Select(a => Task.Factory.StartNew(() => DoSomeWork(a))).ToArray());

For the first approach it executes once and then stops. I am not sure if its overwriting the reference or something. Can someone pls. explain?

Also is there a way to pass some sequence number to Task that can be used to identifiy which task was scheduled first. I mean I want to wait for all the tasks to complete but then order the results based on the sequence in the collection.


原文:https://stackoverflow.com/questions/4927989
更新时间:2022-09-25 22:09

最满意答案

您可以使用两个进程并通过socket / shared memory进行通信。 因此可以合并不同的代码库并进行部署。

但是,如果您希望定位应用程序商店等,我建议您只使用一种语言。 如果您打算使用QT创建UI,那么您最终会自学Qt Designer,SIGNAL SLOT Mechanism等。我想从那里开始,在Qt / C ++中创建整个应用程序并不是一个巨大的学习曲线。

Windows on Mobile占用空间非常小。 如果您希望应用程序定位所有应用商店或超过您应该尝试HTML5


You can use two processes and communicate via say socket/shared memory. So it's possible to merge different codebase and deploy.

However if you are looking to target app stores etc. I suggest you stick to one language only. If you intend to make UI using QT then you would end up teaching yourself Qt Designer, SIGNAL SLOT Mechanism etc. I guess from there it's not a huge learning curve to make the entire app in Qt/C++.

Windows on Mobile has a very small footprint. If you want you app to target all app stores or more than you should try HTML5

相关问答

更多
  • 这取决于你在编码。 可以通过C#中的P / Invoke对OS进行本机调用,但通过本机C ++可以更容易地使用。 您还需要C ++才能使用Compact Framework未包装的某些硬件。 大多数硬件(GPS,照相机等)都可以通过CF获得。 如果您正在使用Win Mobile 6.x设备,那么使用C#可能会更好。 除了硬件外,Pocket Office的(POOM)对象模型也可用于C#,因此您可以将其与它集成。 值得注意的是,大多数对Windows Phone 7的引用都是指托管代码和Silverligh ...
  • “天然湿漆”有点含糊不清; 建议的CMYK的混合将不起作用,因为您仍在添加颜色。 如果您想要像Photoshop中的结果(作为Jon B检查),则需要使用L * a * b *空格。 这里是用于将RGB转换为/从实验室转换的公式和描述。 实验室空间是专门设计的,因此线性变化对应于人眼感觉到的一定量的颜色变化。 这是重要的,因为我们比其他颜色对绿色更敏感,因为我们根据色调和亮度等因素而改变不同。 尝试任何其他正在建议的方法不仅会导致您不想要的颜色,而且也不会代表颜色的“恒定”变化,特别是如果您将这种变化用于常 ...
  • 好的,假设您已经熟悉Visual Studio,Emulators Images,或者已经使用过实际设备,那么您应该已经获得了最新的Windows Mobile SDK; 这些已包含大量有关托管和非托管API的示例和文档。 但是,您应该知道,大多数硬件供应商都提供自己非常具体的SDK和开发人员库(即,用于管理条形码和RFID阅读器,第三方蓝牙堆栈,附加硬件等)。 我不是在谈论这里糟糕的智能手机,而是摩托罗拉或Intermec坚固耐用的移动计算机等工业设备。 但是,您必须注册才能访问其软件库和知识库。 htt ...
  • Xcode for IOS Eclipse for Android Visual Studio for Windows mobile。 您也可以使用其他一些IDE,但对于我上面提到的IDE,您可以找到相当多的支持。 您计划使用C ++构建应用程序非常好,因为如果您正确编码,您可以将大部分代码重用到Android,IOS和Windows移动设备。 但我更喜欢你用Java编写代码,除非你对C ++非常熟悉。 因为你说你知道C#java与C#相比差别不大。 Xcode for IOS Eclipse for An ...
  • 您可以使用两个进程并通过socket / shared memory进行通信。 因此可以合并不同的代码库并进行部署。 但是,如果您希望定位应用程序商店等,我建议您只使用一种语言。 如果您打算使用QT创建UI,那么您最终会自学Qt Designer,SIGNAL SLOT Mechanism等。我想从那里开始,在Qt / C ++中创建整个应用程序并不是一个巨大的学习曲线。 Windows on Mobile占用空间非常小。 如果您希望应用程序定位所有应用商店或超过您应该尝试HTML5 You can use ...
  • 实际上,这不是真的。 如果您学习如何在Maemo中使用两个主要窗口工具包(GTK +和Qt),您将能够为各种设备编写GUI。 诺基亚已经收购了Qt的制造商Trolltech,他们已经将所有GTK +更改发布回GNOME。 这意味着Qt和GTK +都是开源的,因此您可以将它们移植到任何平台。 事实上,诺基亚已经为你做了一些移植 - 他们将Qt移植到Symbian上,后者运行在数百万部手机上。 Qt和GTK +都运行在许多平台上,而不仅仅是linux,所以你也可以用这两个工具包编写Windows程序。 请注意, ...
  • 对于其他人来说,看看这个: http : //labs.trolltech.com/blogs/2007/08/24/extremely-interesting-jambi-trick-x-instantiating-java-widgets-from-c/ 特别是这部分: 如果父窗口小部件是用C ++创建的,则qtjambi_from_QWidget()调用将创建一个新的Java窗口小部件,如果父窗口是用Java创建的,它将返回现有的Java对象。 如果必须创建一个新的java对象,那么它的类型将是Qt ...
  • 这是我的个人意见: 我已经在.NET世界呆了一段时间了。 当iPhone启动创建本地应用程序的能力时,它引起了我的注意。 我真的很想学习Objective-C。 我读了两本书,开始尝试尝试并尝试一个月,然后我离开了iPhone编程,因为你必须在.NET上制作大量的东西才需要一行代码。 当Miguel de Icaza推出MonoTouch时,我试了一下,我意识到我以前完成的大部分代码都是功能齐全的。 我一直试图将UI代码和业务代码分离开来,这真的是iPhone上.NET的一个重点 - 将大部分已经完成的业务 ...
  • 如网站所述,统一模板尚未包含在稳定版本中。 因此,您需要切换到Alpha通道才能访问Unified API。 在这里阅读更多相关信息: http : //developer.xamarin.com/guides/cross-platform/macios/updating_mac_apps/ 编辑: 看来Xamarin.Mac只有在购买时才可用。 请参考此处的链接: http ://forums.xamarin.com/discussion/2231/what-do-i-need-to-do-to-inst ...
  • Nomad看起来很有趣。 尚未尝试过,但似乎它构建HTML5应用程序(而不是本机应用程序)? 它可以为Android和iOS构建。 Nomad looks interesting. Haven't tried it yet, but appears that it builds HTML5 apps (as opposed to native apps)? It can build for both Android and iOS.

相关文章

更多

最新问答

更多
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)
  • 是否可以嵌套hazelcast IMaps?(Is it possible to nest hazelcast IMaps? And whick side effects can I expect? Is it a good Idea anyway?)
  • UIViewAnimationOptionRepeat在两个动画之间暂停(UIViewAnimationOptionRepeat pausing in between two animations)
  • 在x-kendo-template中使用Razor查询(Using Razor query within x-kendo-template)
  • 在BeautifulSoup中替换文本而不转义(Replace text without escaping in BeautifulSoup)
  • 如何在存根或模拟不存在的方法时配置Rspec以引发错误?(How can I configure Rspec to raise error when stubbing or mocking non-existing methods?)
  • asp用javascript(asp with javascript)
  • “%()s”在sql查询中的含义是什么?(What does “%()s” means in sql query?)
  • 如何为其编辑的内容提供自定义UITableViewCell上下文?(How to give a custom UITableViewCell context of what it is editing?)
  • c ++十进制到二进制,然后使用操作,然后回到十进制(c++ Decimal to binary, then use operation, then back to decimal)
  • 以编程方式创建视频?(Create videos programmatically?)
  • 无法在BeautifulSoup中正确解析数据(Unable to parse data correctly in BeautifulSoup)
  • webform和mvc的区别 知乎
  • 如何使用wadl2java生成REST服务模板,其中POST / PUT方法具有参数?(How do you generate REST service template with wadl2java where POST/PUT methods have parameters?)
  • 我无法理解我的travis构建有什么问题(I am having trouble understanding what is wrong with my travis build)
  • iOS9 Scope Bar出现在Search Bar后面或旁边(iOS9 Scope Bar appears either behind or beside Search Bar)
  • 为什么开机慢上面还显示;Inetrnet,Explorer
  • 有关调用远程WCF服务的超时问题(Timeout Question about Invoking a Remote WCF Service)