コード例 #1
0
ファイル: IotDevice.cs プロジェクト: tele-bird/iothub-connect
        public async Task Start()
        {
            try
            {
                if (_started)
                {
                    throw new Exception("Device already started.");
                }
                await _deviceClient.OpenAsync();

                _started = true;
                DeviceStarted?.Invoke(DeviceId, HostName);
                if (!_initialized)
                {
                    IotDeviceMethod[] methods = GetNamedMethods();
                    foreach (IotDeviceMethod method in methods)
                    {
                        _deviceClient.SetMethodHandlerAsync(method.Name, method.Callback, method.Context).Wait();
                    }
                    _initialized = true;
                }
            }
            catch (Exception exc)
            {
                int x = 0;
            }
        }
コード例 #2
0
        private void Worker()
        {
            do
            {
                List <Device> devices = null;

                lock (_lock)
                {
                    devices = queue.ToList();
                }

                if (devices != null && devices.Count > 0)
                {
                    var device = devices[0];
                    device.Start();

                    DeviceStarted?.Invoke(device);

                    // Remove from queue
                    lock (_lock) queue.RemoveAll(o => o.DeviceId == device.DeviceId);
                }
            } while (!stop.WaitOne(Delay, true));
        }