Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinRT中线程内的新线程_C#_Multithreading_Async Await_C# 5.0_Winrt Async - Fatal编程技术网

C# WinRT中线程内的新线程

C# WinRT中线程内的新线程,c#,multithreading,async-await,c#-5.0,winrt-async,C#,Multithreading,Async Await,C# 5.0,Winrt Async,我正在线程池中执行某些功能。在该线程内,将执行linq查询。这需要更多的时间,因为在该查询中,选择my类的一个集合还具有一个bool属性,该属性已检查另外两个集合 collection.Select(item => new MyElement { IsActive = this.CheckIsActive(collection1, collection2, item), Value = item, Name = item != null ? item.ToString() : "Empty

我正在线程池中执行某些功能。在该线程内,将执行linq查询。这需要更多的时间,因为在该查询中,选择my类的一个集合还具有一个bool属性,该属性已检查另外两个集合

collection.Select(item => new MyElement { IsActive = this.CheckIsActive(collection1, collection2, item), Value = item, Name = item != null ? item.ToString() : "Empty" }).ToList<MyElement>();
collection.Select(item=>newmyelement{IsActive=this.CheckIsActive(collection1,collection2,item),Value=item,Name=item!=null?item.ToString():“Empty”}).ToList();
检查激活法----

private bool CheckIsActive(列表集合1、列表集合2、对象项){
if(collection1.Contains(项目)和&!collection2.Contains(项目))
返回false;
返回true;}
这能优化吗?有什么想法吗

可以在新线程中使用新线程执行上述操作吗


可以使用线程还是等待返回类型方法?

当向堆栈溢出发布代码(通常是!)时,请考虑将其分解成多行,而不是每个人都必须滚动一条非常长的线。另外,你的问题目前还不清楚。我完全不确定您是想问一个关于LINQ的问题,还是想问一个关于异步的问题。我们甚至不知道这是否是一个“本地”LINQ查询。(有一件事我可以告诉你:如果你能把
collection1
collection2
改成Hashset,那么如果它们很大的话,速度可能会快很多。)@JonSkeet:请解释一下Hashset的compapision。@Sankarann:检查Hashset中的包含是O(1),而检查列表中的包含是O(N)。对于小集合来说,这并不重要,但是如果您的集合不小,则可以从根本上减少操作时间。但你们并没有提供足够的信息让我们真正说出这是否对你们有帮助。当然,我有点困惑我应该用什么来优化时间。这两个问题我都被问到了。
private bool CheckIsActive(List<object> collection1, List<object> collection2, object item){
 if (collection1.Contains(item) && !collection2.Contains(item))
     return false;
 return true;}