平行foreach字符数组空白
本文关键字:空白 数组 字符 foreach 平行 | 更新日期: 2023-09-27 18:22:19
我正在尝试创建一个并行foreach循环来处理fasta文件。我已经将fasta文件加载到ConcurrentDictionary中foreach设置,但当我处理ConcurrentDictionary时,我的char数组引发一个关于为空的错误,即使ConcurrentDictionary值从不空白。我试着调试,但由于有多个线程,这非常困难告诉我发生了什么。非常感谢。Casey
Parallel.ForEach(fastainfomation, info =>
{
line = info.Key;
name = info.Key;
secondline = info.Value;
if (name != "")
{
name = name.TrimEnd(''r', ''n');
char[] secondlineprimer = secondline.ToCharArray();
string primer = "";
string primername = "";
string primergroup = "";
for (int ii = 0; ii < 8; ii++)
{
primer += secondlineprimer[ii];
} ...
您没有在lambda表达式中声明line
、name
等,这表明它们是在其他地方声明的,这意味着它们将被所有调用共享。这本身就足以使代码变得不安全。
您还应该使用Substring
,而不是像这样重复串接。。。
string primer = info.Value.Substring(0, 8);
除此之外,你的问题并没有包含足够的信息来帮助你进一步——请阅读写下完美的问题,并更加注意清晰度。