C#開源定時回調庫PETimer的使用


PETimer

PETimer開源項目GitHub地址:點擊跳轉

PETimer

1.雙端通用:基於C#語言實現的高效便捷計時器,可運行在服務器(.net core/.net framework)以及Unity客戶端環境中。

2.功能豐富:PETimer支持幀數定時以及時間定時。定時任務可循環、可替換、可取消。可使用獨立線程計時(自行設定檢測間隔),也可以使用外部驅動計時,比如使用MonoBehaviour中的Update()函數來驅動。

3.集成簡單:只有一個PETimer.cs文件,只需實例化一個PETimer類,對接相應的API,便能整合進自己的游戲框架,實現便捷高效的定時回調服務。

技術支持QQ:1785275942

使用示意:

1.Unity當中使用

//實例化計時類
PETimer pt = new PETimer();
//時間定時任務
pt.AddTimeTask(TimerTask, 500, PETimeUnit.Millisecond, 3);
//幀數定時任務
pt.AddFrameTask(FrameTask, 100, 3);

int tempID = pt.AddTimeTask((int tid) => {
    Debug.Log("定時等待替換......");
}, 1, PETimeUnit.Second, 0);

//定時任務替換
pt.ReplaceTimeTask(tempID, (int tid) => {
    Debug.Log("定時任務替換完成......");
}, 2, PETimeUnit.Second, 0);

//定時任務刪除
pt.DeleteTimeTask(tempID);

//定時檢測與處理由MonoBehaviour中的Update()函數來驅動
void Update() {
    pt.Update();
}

2.服務器中使用

第一種用法:運行線程檢測並處理任務(類似於在Unity中使用)

PETimer pt = new PETimer();
//必須在While循環中調用pt.Update()來驅動計時
while (true) {
    pt.Update();
}

第二種用法:獨立線程檢測並處理任務

//在PETimer實例化時,傳入檢測間隔參數(單位毫秒)
PETimer pt = new PETimer(100);

關於定時任務的添加、替換、刪除與Unity當中使用方法一致

3.可設置定時回調處理器

當定時任務的回調處理可通過設置處理Handle來覆蓋默認的執行處理(一般用於獨立線程計時)

pt.SetHandle((Action<int> cb, int tid) => {
    //覆蓋默認的回調處理
    //TODO
});

4.日志工具接口

通過SetLog(Action log)接口,可以傳入第三方的日志顯示工具。(下面以Unity為例,實現在Unity編輯器控制台中輸出日志信息)

pt.SetLog((string info) => {
    Debug.Log("LogInfo:" + info);
});

5.其它常用API

//獲取本地DateTime
public DateTime GetLocalDate();
//獲取年份
public int GetYear();
//獲取月份
public int GetMonth();
//獲取天數
public int GetDay();
//獲取星期
public int GetWeek();
//獲取自1970-1-1以來的毫秒總數
public double GetMillisecondsTime();
//獲取當前時間字符串
public string GetLocalTimeStr();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM