##1 中心服务器 CenterServer 流程
```flow
st=>start: Start
io=>inputoutput: verification
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>end
st->io->op->cond
cond(yes)->e
cond(no)->op
```
---
#2 流程分析
## CCenterServerDlg::OnBnClickedStartService()//启动
=>m_CenterService.StartService()//启动
==>CCenterService::StartService()//开始服务
==>m_TCPNetworkEngine->SetTCPNetworkEngineEvent()//内核组件
===>CTCPNetworkEngine::SetTCPNetworkEngineEvent()//设置接口
===>m_QueueServiceEvent.SetQueueServiceSink()
===>SetQueueServiceSink()
===>m_pIQueueService.StartService()
===>CQueueService::StartService()//建立完成端口,启用线程
====>m_QueueServiceThread.StartThread()//启动线程
====>CServiceThread::StartThread() //_beginthreadex
====>CServiceThread::ThreadFunction()// 线程函数
=====>pServiceThread->OnEventThreadRun()//while循环调用函数
=====>CQueueServiceThread::OnEventThreadRun()//while循环函数
======>GetQueuedCompletionStatus()//等待完成端口,接收PostQueuedCompletionStatus发送的消息
------>pQueueService->OnQueueServiceThread()//接收后消息处理
------>CQueueService::OnQueueServiceThread()//
------>m_pIQueueServiceSink->OnQueueServiceSink()//推送消息
==>m_AttemperEngine->StartService()//调度引擎
===>m_QueueService.StartService()//启动队列
===>CQueueService::StartService()//建立完成端口,启动线程
====>m_QueueServiceThread.StartThread()//
====>CServiceThread::StartThread()//_beginthreadex
=====>CServiceThread::ThreadFunction()//
======>pServiceThread->OnEventThreadRun()//while循环调用函数
==>m_DataBaseEngine->StartService()//数据引擎
===>CDataBaseEngine::StartService()//启动服务
====>m_QueueServiceEvent.SetQueueServiceSink()//设置队列
=====>CQueueService::StartService()//建立完成端口,起线程
======>m_QueueServiceThread.StartThread()//
======> CServiceThread::StartThread()//_beginthreadex
==>m_TCPNetworkEngine->StartService()//网络引擎
===>CTCPNetworkEngine::StartService()//
//1.获取cpu线程数
//2.建立完成端口(启动监听线程while循环调用函数)
//3.建立监听SOCKET
//4.启动发送队列 m_SendQueueService.StartService();
//5.建立读写线程,建立应答线程,运行读写线程,网络检测线程,运行应答线程
---