public void StartServer(string persistentFilename, INetworkAcceptor acceptor) { lock (m_userMutex) { if (m_active) { return; } m_active = true; } m_server = true; m_persistFilename = persistentFilename; m_serverAccepter = acceptor; //Load persistent file, and ignore erros but pass along warnings. if (!string.IsNullOrEmpty(persistentFilename)) { bool first = true; m_storage.LoadPersistent(persistentFilename, (line, msg) => { if (first) { first = false; Warning($"When reading initial persistent values from \" {persistentFilename} \":"); } Warning($"{persistentFilename} : {line} : {msg}"); }); } //Bind SetOutgoing m_storage.SetOutgoing(QueueOutgoing, m_server); //Start our tasks m_dispatchThread = Task.Factory.StartNew(DispatchThreadMain, TaskCreationOptions.LongRunning); m_clientServerThread = Task.Factory.StartNew(ServerThreadMain, TaskCreationOptions.LongRunning); }
public void RegisterAcceptor(INetworkAcceptor acceptor) { _acceptors.Add(acceptor); }
public void Execute(Action <INetworkAcceptor> action, INetworkAcceptor acceptor) { ThreadPool.QueueUserWorkItem(action, acceptor, false); }