using System;
using System.Threading.Tasks;
+using System.Threading;
+using Tizen.Applications;
namespace Tizen.Network.WiFi
{
private Interop.WiFi.RssiLevelChangedCallback _rssiChangedCallback;
private Interop.WiFi.VoidCallback _backgroundScanFinishedCallback;
+ private TizenSynchronizationContext context = new TizenSynchronizationContext();
internal event EventHandler<DeviceStateChangedEventArgs> DeviceStateChanged
{
add
{
- if (_deviceStateChanged == null)
- {
- RegisterDeviceStateChangedEvent();
- }
- _deviceStateChanged += value;
+ context.Post((x) =>
+ {
+ if (_deviceStateChanged == null)
+ {
+ RegisterDeviceStateChangedEvent();
+ }
+ _deviceStateChanged += value;
+ }, null);
}
remove
{
- _deviceStateChanged -= value;
- if (_deviceStateChanged == null)
- {
- UnregisterDeviceStateChangedEvent();
- }
+ context.Post((x) =>
+ {
+ _deviceStateChanged -= value;
+ if (_deviceStateChanged == null)
+ {
+ UnregisterDeviceStateChangedEvent();
+ }
+ }, null);
}
}
{
add
{
- if (_connectionStateChanged == null)
- {
- RegisterConnectionStateChangedEvent();
- }
- _connectionStateChanged += value;
+ context.Post((x) =>
+ {
+ if (_connectionStateChanged == null)
+ {
+ RegisterConnectionStateChangedEvent();
+ }
+ _connectionStateChanged += value;
+ }, null);
}
remove
{
- _connectionStateChanged -= value;
- if (_connectionStateChanged == null)
- {
- UnregisterConnectionStateChangedEvent();
- }
+ context.Post((x) =>
+ {
+ _connectionStateChanged -= value;
+ if (_connectionStateChanged == null)
+ {
+ UnregisterConnectionStateChangedEvent();
+ }
+ }, null);
}
}
{
add
{
- if (_rssiLevelChanged == null)
- {
- RegisterRssiLevelChangedEvent();
- }
- _rssiLevelChanged += value;
+ context.Post((x) =>
+ {
+ if (_rssiLevelChanged == null)
+ {
+ RegisterRssiLevelChangedEvent();
+ }
+ _rssiLevelChanged += value;
+ }, null);
}
remove
{
- _rssiLevelChanged -= value;
- if (_rssiLevelChanged == null)
- {
- UnregisterRssiLevelChangedEvent();
- }
+ context.Post((x) =>
+ {
+ _rssiLevelChanged -= value;
+ if (_rssiLevelChanged == null)
+ {
+ UnregisterRssiLevelChangedEvent();
+ }
+ }, null);
}
}
{
add
{
- if (_backgroundScanFinished == null)
- {
- RegisterBackgroundScanFinishedEvent();
- }
- _backgroundScanFinished += value;
+ context.Post((x) =>
+ {
+ if (_backgroundScanFinished == null)
+ {
+ RegisterBackgroundScanFinishedEvent();
+ }
+ _backgroundScanFinished += value;
+ }, null);
}
remove
{
- _backgroundScanFinished -= value;
- if (_backgroundScanFinished == null)
- {
- UnregisterBackgroundScanFinishedEvent();
- }
+ context.Post((x) =>
+ {
+ _backgroundScanFinished -= value;
+ if (_backgroundScanFinished == null)
+ {
+ UnregisterBackgroundScanFinishedEvent();
+ }
+ }, null);
}
}
private void RegisterDeviceStateChangedEvent()
{
+ Log.Info(Globals.LogTag, "RegisterDeviceStateChangedEvent in Thread " + Thread.CurrentThread.ManagedThreadId);
_deviceChangedCallback = (int deviceState, IntPtr userDate) =>
{
WiFiDeviceState state = (WiFiDeviceState)deviceState;
private void UnregisterDeviceStateChangedEvent()
{
+ Log.Info(Globals.LogTag, "UnregisterDeviceStateChangedEvent in Thread " + Thread.CurrentThread.ManagedThreadId);
int ret = Interop.WiFi.UnsetDeviceStateChangedCallback(GetSafeHandle());
if (ret != (int)WiFiError.None)
{