주변 조명에 따라 동작이 변경되는 간단한 응용 프로그램을 작성하고 있습니다. 앱이 잘 돌아가고 있으며 럭스 값이 디스플레이에서 업데이트됩니다. 문제는 내가 ui 객체의 불투명도를 변경하면 더 이상 센서 업데이트를 얻지 못한다는 것입니다. WP8.1에 익숙하지 않아이 문제를 스레딩 문제로 생각하고 많은 것을 이해하려고 노력했습니다.UI로 작업 할 때 스레드가 멈추는 이유
비슷한 예 :
void OnLightSensorReadingChanged(Windows.Devices.Sensors.LightSensor sender, Windows.Devices.Sensors.LightSensorReadingChangedEventArgs args)
{
Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
LuxReading.Text = "Lux: " + args.Reading.IlluminanceInLux.ToString();
);
}
나는 것을 볼 수 있습니다 : 내가 읽고 업데이트 센서를 얼마나
// Get the ambient light sensor up and running. 500ms interval.
var sensor = Windows.Devices.Sensors.LightSensor.GetDefault();
if (sensor == null)
{
return;
}
sensor.ReportInterval = 500;
sensor.ReadingChanged += OnLightSensorReadingChanged;
이것은 : http://developer.nokia.com/community/wiki/Using_Windows_phone_8.1_light_sensor
이것은 내가 센서를 초기화하는 방법입니다 스레드는 센서 값이 변경 될 때마다 생성되고 종료됩니다. 수치
private void Button_Click(object sender, RoutedEventArgs e)
{
mypicture.Opacity = 0.5;
}
내가 무엇을 놓치고를 동결 나는 UI에서 할
아무것도? Dispatcher를 사용하여 불투명도를 변경해야합니까?
정보를 제공해 주셔서 감사합니다. (더 이상 필요하지 않으므로 답변을 삭제했습니다). 단지 발언 :'OnNavigatedTo '를주의하십시오 - 앱 재개시 호출되지 않습니다. 따라서 예를 들어 앱이 일시 중지되면 센서를 'OnNavigatingFrom'에서 해제합니다. 예를 들어 MS 버튼을 누르거나 앱을 변경하거나 다른 앱으로 돌아 가면 이벤트가 시작되지 않습니다. 디버깅 모드에서는 작동하지만 앱은 일시 중지되지 않고 VS 외부에서 앱을 실행하여 테스트합니다. 또는 [디버거를 사용하여 테스트 일시 중단] (http://stackoverflow.com/a/24103734/2681948) – Romasz
위의 주석은 WP8.1 RT가 아닌 Silverlight에 관한 것입니다. – Romasz