Начиная с C # 6.0 вы можете использовать монодичный оператор Null-conditional ?.
, чтобы проверять события с нулевым и повышающим потоком простым и потокобезопасным способом.
SomethingHappened?.Invoke(this, args);
Это поточно-безопасный, поскольку он оценивает левая сторона только один раз и сохраняет ее во временной переменной. Вы можете прочитать здесь здесь в разделе «Операторы с нулевым условием».
Обновление: на самом деле обновление 2 для Visual Studio 2015 теперь содержит рефакторинг для упрощения делегирования делегатов, тип обозначений. Вы можете прочитать об этом в этом объявлении .
Я решил эту проблему, поместив OnAuthStateChanged в готовый документ, поскольку слушатель загружается слишком медленно.
$(document).ready(function(){
firebase.auth().onAuthStateChanged(user => {
if(user) {
window.location = '/home';
}
});
});