void PostSyncMessage() { Action post = () => { var netEngin = new NetEngin(Program.NetworkSettings); string tmpFile = Path.GetTempFileName(); var ms = new MemoryStream(); var writer = new RawDataWriter(ms, Encoding.UTF8); writer.Write(m_clInfo.ClientID); writer.Write(m_srvLastMsgID); writer.Write(m_clientLastMsgID); byte[] msgData = ms.ToArray(); try { netEngin.Download(tmpFile, Urls.ConnectionReqURL); var seq = DialogEngin.ReadConnectionsReq(tmpFile); uint msgID = 0; if (seq.Any()) { msgID = seq.Max(m => m.ID); } var msg = new Message(msgID + 1, 0, Message_t.Sync, msgData); DialogEngin.AppendConnectionsReq(tmpFile, new Message[] { msg }); netEngin.Upload(Urls.ConnectionReqURL, tmpFile); } catch (Exception ex) { Dbg.Log("PostSyncMessage: " + ex.Message); } finally { File.Delete(tmpFile); } }; var task = new Task(post, TaskCreationOptions.LongRunning); task.Start(); }