Esempio n. 1
0
        private void Update()
        {
            if (count > 0)
            {
                lock (_threadLock)
                {
                    ThirdPartyParam param = thirdPartyParams.Dequeue();

                    --count;
//                    Log.Info(
//                        $"ThirdPartyUnityDispatch Dispatch param\nCommandType = {param.Type}\nJsonData = {param.JsonData}\nExtra = {param.ExtraData}\nHas callback = {param.Callback != null}\nThread id = {Thread.CurrentThread.ManagedThreadId}",
//                        ColorName.Tan);


                    if (param.Callback == null)
                    {
                        ThirdPartyDispatch.Handle(param.Type,
                                                  string.IsNullOrEmpty(param.JsonData) ? null : JSONNode.Parse(param.JsonData),
                                                  param.ExtraData);
                    }
                    else
                    {
                        param.Callback.Invoke((int)param.Type,
                                              string.IsNullOrEmpty(param.JsonData) ? null : JSONNode.Parse(param.JsonData),
                                              param.ExtraData);
                    }
                }
            }
        }
Esempio n. 2
0
        public void Register(ThirdPartyParam InParam)
        {
            lock (_threadLock)
            {
//                Log.Info(
//                    $"ThirdPartyUnityDispatch register param\nCommandType = {InParam.Type}\nJsonData = {InParam.JsonData}\nExtra = {InParam.ExtraData}\nHas callback = {InParam.Callback != null}\nThread id = {Thread.CurrentThread.ManagedThreadId}",
//                    ColorName.Tan);

                thirdPartyParams.Enqueue(InParam);

                ++count;
            }
        }