Make all additional threads return from a method using Interlocked.Increment
Yes, your code should work. Though the first part can be simplified to:

if (Interlocked.CompareExchange(ref _threadsCount, 1, 0) != 0)
{
    return;
}