同時增加心跳,用來同步 資料並 定時批量儲存資料庫。
protectedoverride
void
onstarted()
//規定時間 檢查一次心跳
public
void theout(object
source, system.timers.elapsedeventargs e)
} //定時器 作用, 同步 儲存資料庫 計算收益
void
ontimeserver()
執行緒管理類 負責 推送給 定時器,同時定義陣列jsondata obj
負責臨時存放 事物,分配給各類執行緒處理。
publicbool queueworkitem(manualresetevent eventx, int
task)
//等待事件的完成,即執行緒呼叫manualresetevent.set()方法
阻止當前執行緒,直到當前 waithandle 收到訊號為止。
eventx.waitone(timeout.infinite, true
); console.writeline(
"任務結束,資料存放到 list中");
console.writeline(
"通知 定時器");
//存放到 queue 中
servermodel.getinstance().queue.enqueue(obj);
return
true
; }
執行緒中,負責 物理模擬,同時把資料放到傳參過來的objs中
objs[task] = json;//保持陣列
本週就先到這裡。
智慧型預判 (二 最初的布局)
不太會畫圖,先簡單看下 程式流程,他比 其他 伺服器 多了 乙個 單獨的 執行緒 內部資料庫 物理運算,也就是 他的運算 不需要 客戶端 時時給資訊。下面是 片段 var bootstrap bootstrapfactory.createbootstrap if bootstrap.initiali...
智慧型預判 (一 執行緒的開啟)
單執行緒模式,在大資料量 運算下,肯定效率 沒有 多執行緒快,所以,在設計初期,我就定下了 多執行緒方案。下面是 計畫 多執行緒方案的 幾個備選方式。一 單人 多執行緒 非同步併發方案。己方人物碰撞檢測 敵方 一條執行緒。敵方人物碰撞檢測 己方 一條執行緒。己方 子彈 碰撞檢測 敵方 一條執行緒。敵...
智慧型預判 (六 服務端戰鬥 模擬)
服務端 模擬,是指,和 客戶端 做法一樣,給出人物屬性,按照序列幀,開始執行計算。但服務端 執行速度 遠遠大於客戶端。這裡的最關鍵做法,要注意2點!1 戰鬥過程,必須是同步計算,千萬不能有 乙個 非同步處理!好多u3d的朋友,喜歡用 事件,喜歡用協成。這裡注意了,別用哦,雖然處理流程 起來會 比較麻...