void Start() { httpListener.Prefixes.Add("http://127.0.0.1:" + port + "/"); OnRequest = new OnRequestEvent(); OnRequest.AddListener(HandleRequest); StartServer(); }
/// <summary> /// Запустить мониторинг изменений в MemoryMappedFile /// </summary> /// <param name="memoryMappedFile"></param> /// <param name="memoryMappedViewAccessor"></param> /// <param name="task"></param> public static void RunMonitor(MemoryMappedFile memoryMappedFile, MemoryMappedViewAccessor memoryMappedViewAccessor, Task task) { task = new Task(() => { memoryMappedViewAccessor = memoryMappedFile.CreateViewAccessor(0, 8); while (AppData.runWatchThread) { memoryMappedViewAccessor.Read(0, out Int16 commandIndicator); if (commandIndicator == AppData.COMMAND) { memoryMappedViewAccessor.Read(2, out byte s0); // Disabled or Enabled memoryMappedViewAccessor.Read(3, out byte s1); // Force mode on or off memoryMappedViewAccessor.Read(4, out byte s2); // This is how we reset command memoryMappedViewAccessor.Write(0, (Int32)0); if (s0 == AppData.SUB_COMMAND_EXIT) { App.Current.Dispatcher.Invoke(() => { App.Current.Shutdown(); }); break; } else if (s0 == AppData.SUB_COMMAND_CHANGE) { if (s1 == 0) { AppData.SwitchToStatus = Status.sOn; } else if (s1 == 1) { AppData.SwitchToStatus = Status.sOff; } AppData.EnforceWhileRun = s2 == 1; AppData.MustSwitch = true; } OnRequestEvent?.Invoke(); } Thread.Sleep(100); } }); task.Start(); }
public virtual void OnRequest(TcpClientMessageService service) { OnRequestEvent?.Invoke(this, new MessageEventArgs(this, service)); }
protected void OnRequestReceived(RequestMessage message) { OnRequestEvent handler = OnRequest; Runner.Primary(() => handler?.Invoke(message)); }