2009-10-17 35 views
0

在我來說,我有一個遊戲服務器,與CLR線程池處理的插座,以及其他的東西一個線程池管理。我試圖找出處理事件的最佳方式,如NPC施放咒語,或在一段時間之後進行despawning。有效處理定時事件在服務器

我可以只寫一些定時器包裝,爲我想要執行的每個動作獲取新的(託管)線程池線程,比如新的TimedEvent(1500,npc.Cast(Spells.FireBall));並檢查系統時間,但是,我認爲,像這樣的多個定時器運行,每個單獨檢查所用時間都是低效的。 某種調度程序線程會更好嗎?

在此先感謝。

回答

0

看一看如何UOX3並在情況下,你不知道,服務器的應用程序。它是一個.Net/C#Ultima Online服務器。

和你的具體問題。這取決於你期望的事件數量。如果你期望每秒鐘有數千個計時器/線程方式可能不會很好地工作。

+0

UOX3的核心似乎是用C++編寫的,所以我猜你的意思是RunUO:p 無論如何,檢查區域更新聲音的SortedList事件(按到期時間/滴答聲排序)比我最初的提議更好? – Josh 2009-10-17 15:58:35

+0

UUPS抱歉的意思RunUO – Foxfire 2009-10-17 16:59:13

+0

如果你有很多的事件,然後列表的方法聽起來更feasable。 – Foxfire 2009-10-18 09:36:20