unauthorizedAccessException wurde nicht behandelt
Hallo zusammen,
ich versuche die Sensordaten vom G-Sensor in textboxen auszugeben, jede achse in einer Textbox. Dann bekomme ich beim debuggen den obigen Fehler, bzw: "Invalid cross-thread access". Kann mir jm helfen?
Vielen Dank schonmal, hier mein Code:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Devices.Sensors;
using Microsoft.Xna.Framework;
namespace sensorlog
{
public partial class MainPage : PhoneApplicationPage
{
Accelerometer accelSensor= new Accelerometer();
Vector3 accelReading = new Vector3();
bool accelActive = false;
// Konstruktor
public MainPage()
{
accelSensor.ReadingChanged +=
new EventHandler<AccelerometerReadingEventArgs>(AccelerometerReadingChanged);
try
{
accelSensor.Start();
accelActive = true;
}
catch (AccelerometerFailedException e)
{
// the accelerometer couldn't be started. No fun!
accelActive = false;
}
catch (UnauthorizedAccessException e)
{
// This exception is thrown in the emulator-which doesn't support an accelerometer.
accelActive = false;
}
InitializeComponent();
}
public void AccelerometerReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
if (accelActive)
{
accelReading.X = (float)e.X;
accelReading.Y = (float)e.Y;
accelReading.Z = (float)e.Z;
xAchse.Text = accelReading.X.ToString(); //xAchse, yAchse und zAchse sind die Textboxen
yAchse.Text = accelReading.Y.ToString();
zAchse.Text = accelReading.Z.ToString();
}
}
}
}
AW: unauthorizedAccessException wurde nicht behandelt
hallo pt254
hast du das Capability ID_CAP_SENSORS vielleicht auskommentiert?(WMAppManifest).
Weil ich hatte auch mal einen Fehler mit dem unauthorized... und stellte dann fest, dass es daran lag, dass ich ein bestimmtes Capability auskommentiert hatte.
Gruss
Cr3dos
AW: unauthorizedAccessException wurde nicht behandelt
thx erstmal für die schnelle antwort, ich habe leider gestern keine Zeit gefunden um es zu überprüfen.
Ich habe gerade nachgeschaut, aber die Sensor Capibility ist nicht auskommentiert
sonst vielleicht noch jm ne Idee worans liegen könnte?
Der Fehler kommt auch erst beim debuggen, wenn ich obriges ausgeklammert hätte wärs bestimmt schon vorher angezeigt worden
AW: unauthorizedAccessException wurde nicht behandelt
Das Event über das geänderte Sensor-Reading wird in einem Hintergrund-Thread ausgelöst. Damit läuft AccelerometerReadingChanged in ebendiesem Hintergrund-Thread und beim Zugriff auf das UI (das im Hauptthread läuft) kommt dann der UnauthorizedAccess.
Du müsstest also in dem EventHandler zuerst mit dem Hauptthread synchronisieren und dann dort die Werte in die Textboxen einsetzen.