static void Main(string[] args) { int i = 100000000; int[,] k = { {1,2,3}, {4,5,6}, {7,8,9}, }; do { foreach (int b in k) { bool isPass = true; do { System.Console.WriteLine(b); } while (isPass == false); } } while (--i > 0); }我写了个类似的,你看看
static void Main(string[] args) { int i = 100000000; int[,] k = { {1,2,3}, {4,5,6}, {7,8,9}, }; do { Method(k); } while (--i > 0); } private void Method(int[,] k) { foreach (int b in k) { bool isPass = true; do { System.Console.WriteLine(b); } while (isPass == false); } }
do
{foreach (UseCaseScenarioBase useCase in this.SelectedUseCaseScenarios)
{do
{ //对SelectedUseCaseScenarios集合的操作,操作完后,GC.collect....}while (useCaseExceptionThrown && this.ScenarioRetryCount-- > 0);}}while (--this.scenarioRepeatCount > 0);scenarioRepeatCount 表示循环次数。
每次进do操作之前,都会对集合SelectedUseCaseScenarios赋值,然后循环跑do内部,直到scenarioRepeatCount为0,然后问题出来了,就是每当循环完一遍,scenarioRepeatCount--,继续跑的时候,内存都会在原先的基础上增加.这正常不。
操作对象的集合是在循环之前赋值的,循环过程中没有任何赋值,如果强制=null,循环就failed
我大概知道了,是这样的,在对集合的操作过程中,我都用log记录每一步的操作,也就是说循环10遍,log都会记录,这就是集合里面托管资源没被释放的真正原因吗?=。=
几乎所有的操作都会用到log来记录,并且跑一万遍记录一万遍=。=。这个合理吗,但是内存却hold不住啊,如果跑一万遍。
LZ我明白你的意思了
do while在执行的适合系统会分配一块儿资源一直到循环完成退出来才施放资源
具体怎么分配 怎么施放不是很清楚 等楼下高人来解答
{
int i = 100000000;
int[,] k = {
{1,2,3},
{4,5,6},
{7,8,9},
};
do
{
foreach (int b in k)
{
bool isPass = true; do
{
System.Console.WriteLine(b);
} while (isPass == false);
}
} while (--i > 0);
}我写了个类似的,你看看
static void Main(string[] args)
{
int i = 100000000;
int[,] k = {
{1,2,3},
{4,5,6},
{7,8,9},
};
do
{
Method(k);
} while (--i > 0);
} private void Method(int[,] k)
{
foreach (int b in k)
{
bool isPass = true; do
{
System.Console.WriteLine(b);
} while (isPass == false);
}
}