Да, это необходимо.Среда .Net использует некоторые оптимизации, и иногда, если к ячейке памяти обращаются часто, данные перемещаются в регистры ЦП.Таким образом, в этом случае, если mbTestFinished находится в регистре процессора, то поток, читающий его, может получить неправильное значение.Таким образом, использование энергозависимого ключа гарантирует, что все обращения к этой переменной осуществляются в ячейке памяти, а не в регистрах.С другой стороны, я понятия не имею о частоте этого происшествия.Это может происходить с очень низкой частотой.