При использовании Profiler.BeginSample образец записывается до тех пор, пока не будет достигнут следующий вызов Profiler.EndSample. В большинстве случаев это нормально, но есть крайний случай, когда меня немного раздражает то, как это работает. Возьмем простой пример:
Код: Выделить всё
bool NumberIsEven(int x)
{
Profiler.BeginSample("NumberIsEven");
if (x % 2 == 0) {
Profiler.EndSample();
return true;
}
Profiler.EndSample();
return false;
}
Вместо этого мне интересно, можно ли каким-то образом привязать образец к методу, в котором мы сейчас находимся, избегая необходимости использования нескольких операторов Profiler.EndSample(). Например, я хочу что-то вроде этого:
Код: Выделить всё
//This code is functionally identical to the above example.
bool NumberIsEven(int x)
{
TieSampleToCurrentMethod("NumberIsEven"); //Begins a profiler sample tied to this function which will end whenever this function is exited
if (x % 2 == 0) {
return true; //Profiler sample automatically ends when we hit this
}
return false; //Profiler sample automatically ends when we hit this
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... sample-cal
Мобильная версия