C# 在.NET2.0环境中,如何查找由方法访问/修改的所有对象

C# 在.NET2.0环境中,如何查找由方法访问/修改的所有对象,c#,.net,multithreading,C#,.net,Multithreading,我有一个很大的C#应用程序--.NET2.0,里面有将近70个项目 我需要知道特定方法在执行过程中访问/修改的所有对象的列表 该特定方法是GUI启动的特定操作的起点。基于计数用户输入,此方法在循环中多次调用,以执行特定操作,但每次迭代中的唯一区别是,它对特定输入数据列表进行随机排序,解决方案不同-选择成本最低的解决方案 我想使用多个线程并行运行它。。目前我的应用程序在四核机器上使用的CPU不超过25%。。。这是只有一个线程在那里,它不能超过CPU。。因此,25%。。。我想运行尽可能多的线程作为C

我有一个很大的C#应用程序--.NET2.0,里面有将近70个项目

我需要知道特定方法在执行过程中访问/修改的所有对象的列表

该特定方法是GUI启动的特定操作的起点。基于计数用户输入,此方法在循环中多次调用,以执行特定操作,但每次迭代中的唯一区别是,它对特定输入数据列表进行随机排序,解决方案不同-选择成本最低的解决方案

我想使用多个线程并行运行它。。目前我的应用程序在四核机器上使用的CPU不超过25%。。。这是只有一个线程在那里,它不能超过CPU。。因此,25%。。。我想运行尽可能多的线程作为CPU计数,这样可以实现100%的利用率和更快的结果

我已经创建了线程,但它偶尔会崩溃,异常文本对于知道发生了什么毫无用处。。我所知道的都是由于多个线程


一旦我知道了它涉及的所有对象,我就可以进一步分析是锁定还是在可能的情况下为每个线程提供单独的数据副本。

C#
-
如何查找所有全局变量
-什么?什么是全局变量?C#不是C/C++。。。您需要查找由线程处理并且可能由任何其他线程处理的任何对象实例。这些物体从哪里来并不重要,重要的是线是否接触到它们——这意味着,即使是私有成员变量中的对象,如果它被任何线程工作者方法所触及,也必须加以考虑…我必须逐行遍历完整的执行路径,并找出线程方法范围之外的所有对象都被它和其中的方法所触及。。。这将持续几天或几周。。。因此,我希望如果有人能建议一个聪明和快速的方法来获得一个列表。。。可能一些GC和相关的调用在某种程度上会有所帮助……这不是.NET2.0的问题。这是您的Visual Studio版本的问题。我建议您使用带ReSharper的Visual Studio 2013打开解决方案,并使用各种功能,如代码映射、调用层次结构和检查值源/目标。我还建议您拆分该解决方案-拆分一些类库,至少出于分析目的。70个项目很难推理。