我正在用 C# (Visual Studio 2013) 编写 Windows 服务。该服务为其连接的每个服务器激活一个线程。
'server' 对象被定义为 'ThreadStatic' (因此每个线程都应该将其作为不同的对象访问):
[ThreadStatic]
public static Server CurServer
在调试时 - 我有时会收到错误:
ArgumentOutOfRangeException
Index was out of range. Must be non-negative and less than the size of the collection.
它出现在以下行中(在“服务器”线程的方法内):
EventConn.FindString = G.CurServer.FilesList[G.CurServer.nFilesIndex].SearchString;
但奇怪的是调试器显示这些值是好的:
G.CurServer.FilesList.count = 1
G.CurServer.nFilesIndex = 0
所以应该没有错误!!!
当我按 F11 (调试器步骤)时,它会继续调试,好像一切都很好,并且分配也有效......
为什么?????:0
在分配当前线程的值之前,是否是 Visual Studio 中的错误提示错误?或者我没有使用线程 saftley(更有可能)?