Здравствуйте, ravel, Вы писали:
R>Помогите пожалуйста разобраться, что я делаю не так
Попробую суммировать.
Как уже сказали, IsolatedStorageFile непотокобезопасен. По этой причине возникают проблемы при обращении к экземпляру этого класса из нескольких параллельно запущенных асинхронных методов.
Отсюда могло бы следовать, что доступ к этому экземпляру нужно синхронизировать. Обычным способом синхронизации является оператор lock(). Но в теле асинхронного метода его нельзя использовать (вернее так: операторы await нельзя использовать в теле оператора lock()). Поэтому Вам предложили использовать именованные мьютексы.
Однако, если тем или иным способом защитить экземпляр IsolatedStorageFile — проблему это, конечно, решит, но сделает бессмысленным использование асинхронных методов и их параллельный вызов: все обращения к IsolatedStorage выстроятся в очередь.
Поэтому правильным решением было бы просто создавать несколько экземпляров IsolatedStorageFile. Внутри асинхронного метода (а не снаружи, как у Вас).
Это тоже не гарантирует больших преимуществ от параллельности (в любом случае тестить надо), но по крайней мере асинхронный код будет иметь смысл.