を比較しない、私は別のリストと比較するネストされたリストを引き出すためにスレッドを使用しようとしている、このスレッディングとリスト、どのように私はそれぞれ通過し、
List<KeyPairValues<string, List<string>> mainList = new List<KeyPairValues<string, List<string>>();
// In my actual code I create these list through a loop
List<string> A = new List<string>();
A.Add("Car");
A.Add("Plain");
A.Add("Boat");
List<string> B = new List<string>();
B.Add("Flower");
B.Add("Dog");
B.Add("House");
List<string> C = new List<string>();
C.Add("Appartment");
C.Add("Plant");
C.Add("Candy");
mainList.Add(new KeyValuePair<string, List<string>>("unRead", A));
mainList.Add(new KeyValuePair<string, List<string>>("unRead", B));
mainList.Add(new KeyValuePair<string, List<string>>("unRead", C));
List<string> compareList = new List<string>();
compareList.Add("Car");
compareList.Add("Boat");
compareList.Add("Dog");
List<string> resList = new List<string>();
ような何か私の最初の考えはしました私の現在のコードでは、mainListに32個のリストがあります。
foreach(var item in mainList)
{
if(item.key == "unRead")
{
foreach(var subItem in item.value) // evt do a List<string> temp = item.value first
{
foreach(var compItem in compareList)
{
if(compItem == subItem) resList.Add(compItem);
}
}
item.remove(); // I actualy wanted to change from unRead to read, but I figured I could just remove it from the list.
}
}
私はスレッドを使用してseperatスレッド、10か何かの最大スレッド量とEVTに各リストを通過する場合、これはfasteことができるはずです。 私はこれをやっていました。
foreach(var item in mainList)
{
Thread myThread = new Thread(() =>
{
if(item.key == "unRead")
{
foreach(var subItem in item.value) // evt do a List<string> temp = item.value first
{
foreach(var compItem in compareList)
{
if(compItem == subItem) resList.Add(compItem);
}
}
item.remove(); // I actualy wanted to change from unRead to read, but I figured I could just remove it from the list.
}
});
myThread.start();
}
しかし、これはだから私は間違って何をやっている...まったく
を任意の期待出力を与えるdident?
あなたは、正確に予想される結果がどのように見えるのか、そして現在の結果は何ですか? – nozzleman
それとも、物事をスピードアップすることですか? – nozzleman
'resList'は複数のスレッドで修正されているため、ロックする必要があります。 –