我使用下面的代码启动带有列表参数的线程,但有时它会引发异常:
给定的密钥不在字典中
从这一行:
Thread MoveThread = new Thread(() => MoveTask(ControllerDictionary[i]));
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
完整代码:
var ControllerDictionary = ConfigFile.ControllerList.Select((c, i) => new { Controller = c, Index = i })
.GroupBy(x => x.Index % AppSettings.SimultaneousProcessNumber)
.Select((g, i) => new { GroupIndex = i, Group = g })
.ToDictionary(x => x.GroupIndex, x => x.Group.Select(xx => xx.Controller).ToList());
for (int i = 0; i < ControllerDictionary.Count; i++)
{
Thread MoveThread = new Thread(() => MoveTask(ControllerDictionary[i]));
MoveThread.Start();
foreach (var Controller in ControllerDictionary[i])
Logger.Write(string.Format("{0} is in move thread …Run Code Online (Sandbox Code Playgroud) 我怎样才能从中获取文件名列表
List<FileInfo> FileInfoList;
Run Code Online (Sandbox Code Playgroud)
使用LINQ?我想要所有文件名
List<string> FileNames;
Run Code Online (Sandbox Code Playgroud)
名单.我不想构造一个foreach循环,也不想迭代地添加文件名.
我有一个用C#编写的多线程TCP服务器.客户端被服务器接受,并且在连接时不会离开服务器.大约1300个活动连接后,我的软件出现System.OutOfMemmoryException错误.这个问题与32位系统架构和ram有关吗?我有32位Windows 7专业版和4 GB内存.当我的服务器上存在大约1300个活动连接时,我的内存使用量约为2.1GB,CPU使用率为30%.
谢谢.
如何返回基类形式的数据?
A aclass = new A();
B bclass = aclass.GetB();
Run Code Online (Sandbox Code Playgroud)
不起作用.
public class B
{
protected string str1;
protected string str2;
}
public class A:B
{
public A()
{
base.str1 = "A";
base.str2 = "B";
}
public B GetB()
{
return base;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含大约60-70个元素的整数列表.如何使用linq获取包含10个整数元素的列表?如果有68个元素,则函数应返回包含10个元素的6个列表和包含8个元素的1个列表.
如何在块中使用"x"变量?如果statement为true,我想返回x的Id字段.
if (UserList.Any(x => x.Type == (int)UserType.SuperUser))
{
return x.Id;
}
Run Code Online (Sandbox Code Playgroud)