Почему метод Synchronized всегда возвращает false?
В Windows Phone 8 (только на устройстве!) попробуйте запустить этот код:
public MainPage()
{
InitializeComponent();
var myTrue = GetTrue();
Debug.WriteLine(myTrue);
// false
}
[MethodImpl(MethodImplOptions.Synchronized)]
private static bool? GetTrue()
{
return true;
}
Вы увидите, что myTrue
всегда False! Зачем?! Как это может быть?!
ОБНОВЛЕНИЕ: протестировано на устройствах: Nokia Lumia 920, HTC 8X, Nokia Lumia 925
Ответы
Ответ 1
Я думаю, что такое поведение связано с этим:
Телефон Windows
Указание параметра Synchronized для конструктора MethodImplAttribute не поддерживается и не приведет к синхронному поведению.
Отметьте здесь http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.runtime.compilerservices.methodimploptions%28v=vs.105%29.aspx