我在一个程序的函数中调用了TRACE语句打印了一些信息,形式如下:void func()
{
... for(int i=0; i<3 ;i++)
{
TRACE("....");
}
...
}可运行的时候发现,我这个循环明明循环了三次,可有时在输出窗口中却只显示两个TRACE信息,有时又只显示一个。我在TRACE语句中把循环的索引也打印出来了,当只显示两个TRACE信息时,第一条信息显示循环的索引值为1,第二条信息显示循环的索引值为2。可索引值为0的那条TRACE信息哪里去了呢?怎么没显示呢?需要说明的是我这个函数被调用的频率很大很大。我不明白为什么在输出窗口中显示的TRACE个数与实际的个数不匹配呢?有一种说法是说如果TRACE语句调用的速度超过了OUTPUT窗口处理的速度,则会导致TRACE语句丢失。会不会是这个原因呢?再有就是我这是一个多线程程序,会不会是线程跳转导致的呢?
{
... for(int i=0; i<3 ;i++)
{
TRACE("....");
}
...
}可运行的时候发现,我这个循环明明循环了三次,可有时在输出窗口中却只显示两个TRACE信息,有时又只显示一个。我在TRACE语句中把循环的索引也打印出来了,当只显示两个TRACE信息时,第一条信息显示循环的索引值为1,第二条信息显示循环的索引值为2。可索引值为0的那条TRACE信息哪里去了呢?怎么没显示呢?需要说明的是我这个函数被调用的频率很大很大。我不明白为什么在输出窗口中显示的TRACE个数与实际的个数不匹配呢?有一种说法是说如果TRACE语句调用的速度超过了OUTPUT窗口处理的速度,则会导致TRACE语句丢失。会不会是这个原因呢?再有就是我这是一个多线程程序,会不会是线程跳转导致的呢?
{
TRACE("....");
SetSleep100);
}