gpt4 book ai didi

c# - 将字典作为参数传递给线程函数

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:33 24 4
gpt4 key购买 nike

如何将字典作为参数传递给线程函数,然后遍历它?

Dictionary<string, Track> dic = allTracks;
updateThread = new Thread(() => toDB(dic));
updateThread.Start();

和函数:

public static void  toDB( Dictionary<string, Track>  dict)
{
foreach (KeyValuePair<string, Track> pair in dict)
{
//do something - but I do not alter anything in dictionary
}
}

我试过这样但是我得到一个错误

Collection was modified; enumeration operation may not execute.

最佳答案

如果您的词典在主线程或您传递给的线程中被修改,您将得到这个异常。您可以使用 ConcurrentDictionary或自己实现锁定。

但是,如果您不打算修改您在线程中调用的函数内的原始集合,并且您也不需要最新的值,那么您可以简单地创建一个副本,然后再将其传递给您的单独线程。

关于c# - 将字典作为参数传递给线程函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com