Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

《暗黑战神》41课时服务器端脚本NetSvc.cs线程锁为什么要锁一个字符串
sdewqazxcds发起了问答2019-03-09
2
回复
324
浏览

using PENet;
using PEProtocol;
using System.Collections.Generic;

class NetSvc
{
    private static NetSvc instance = null;
    public static NetSvc Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new NetSvc();
            }
            return instance;
        }
    }

    public static readonly string obj = "lock";//这个是干什么用的?
    /// <summary>
    /// 接受消息队列
    /// </summary>
    private Queue<GameMsg> msgPackQue = new Queue<GameMsg>();

    public void Init()
    {
        PESocket<ServerSession, GameMsg> server = new PESocket<ServerSession, GameMsg>();
        server.StartAsServer(SrvCfg.srvIP, SrvCfg.srvPort);

        PECommon.Log("NetSvc Init Done.");
    }

    public void AddMsgQue(GameMsg msg)
    {
        lock (obj)
        {
            msgPackQue.Enqueue(msg);
        }
    }
}

线程锁我知道,为什么不是锁队列msgPackQue,锁一个只读字符串是什么操作?

所有回复
发表回复
你还没有登录,请先 登录或 注册!