Anyhit shader not be called multiple times

I am working on some small application which has three overlapping triangles and I am using ray tracing to render them. I have a simple anyhit shader:

[shader("anyhit")]
void triAhs(inout RayPayload payload, in BuiltInTriangleIntersectionAttributes attribs)
{
    float3 barycentrics = float3(1.0 - attribs.barycentrics.x - attribs.barycentrics.y, attribs.barycentrics.x, attribs.barycentrics.y);
    float3 newColor = (A * barycentrics.x + B * barycentrics.y + C * barycentrics.z); 
    payload.color += newColor*0.5;
    //AcceptHitAndEndSearch();
}

I expect that the overlapping region should have accumulated color as the ray should hit the overlapping region multiple times. But the final image shows the color for each triangle is not sumed up, which is the same as I uncommented the last line AcceptHitAndEndSearch(); I wonder if my understanding about the anyhit shader is incorrect. Can anyone help me on this?