帮助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
最满意答案
您可以使用两个进程并通过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
相关问答
更多-
Windows Mobile开发:C ++或C# - 哪个更好?(Windows Mobile development: C++ or C# — which one is better? why?)[2023-11-29]
这取决于你在编码。 可以通过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转换为/从实验室转换的公式和描述。 实验室空间是专门设计的,因此线性变化对应于人眼感觉到的一定量的颜色变化。 这是重要的,因为我们比其他颜色对绿色更敏感,因为我们根据色调和亮度等因素而改变不同。 尝试任何其他正在建议的方法不仅会导致您不想要的颜色,而且也不会代表颜色的“恒定”变化,特别是如果您将这种变化用于常 ...
-
Windows Mobile上的C#(C# on Windows Mobile)[2022-04-22]
好的,假设您已经熟悉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 ...
-
iPhone开发vs Objective C iPhone开发[关闭](c# iPhone development vs objective c iPhone development [closed])[2022-03-24]
这是我的个人意见: 我已经在.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.