Beispiel #1
0
        public bool CreateServer()
        {
            if (mReceiveThreadRuning)
            {
                return(false);
            }

            Logger.Sys.Log("Start IPC Thread");

            mReceiveThread = Loom.StartSingleThread(ReceiveLoop, System.Threading.ThreadPriority.Normal, true);
            mReceiveThread.IsBackground = true;
            mReceiveThreadRuning        = true;

            return(mInitEvent.WaitOne(50000));

            /*
             * if (mIPCBase != IntPtr.Zero)
             * {
             *  return false;
             * }
             *
             * if (!CreateIpcModuleEx(ref mIPCBase, ref mIPCModule))
             * {
             *  return false;
             * }
             *
             * return true;*/
        }
Beispiel #2
0
        private List <OperationItemHistory> operationItemHistorySearchList; //当前搜索出来的操作票历史记录

        /// <summary>
        /// 显示
        /// </summary>
        public void Show()
        {
            SetContentActive(true);
            searchInput.text = "";

            Loom.StartSingleThread((System.Threading.ThreadStart)(() =>
            {
                if (curentState == State.工作票)
                {
                    GetWorkTicketHistoryData();
                    Loom.DispatchToMainThread((Frankfort.Threading.ThreadDispatchDelegate)(() =>
                    {
                        ShowWorkTicketHistoryInfo();
                    }));
                }
                else if (curentState == State.操作票)
                {
                    GetOperationTicketHistoryData();
                    Loom.DispatchToMainThread(() =>
                    {
                        ShowOperationTicketInfo();
                    });
                }
            }));
        }
    /// <summary>
    /// 刚打开人员搜索时界面的显示
    /// </summary>
    public void StartPerSearchUI()
    {
        SearchToggle = PersonSubsystemManage.Instance != null ? PersonSubsystemManage.Instance.SearchToggle : null;
        if (IsGetPersonData || (SearchToggle != null && SearchToggle.isOn == false))
        {
            return;
        }
        Loom.StartSingleThread(() =>
        {
            IsGetPersonData = true;
            personnels      = CommunicationObject.Instance.GetPersonnels();;

            Loom.DispatchToMainThread(() =>
            {
                IsGetPersonData = false;
                if (SearchToggle != null && SearchToggle.isOn == false)
                {
                    return;
                }

                peraonnelData = new List <Personnel>(personnels);
                selectedItem  = new List <Personnel>(personnels);
                ShowPersonnelInfo();
            });
        });

        listT = LocationManager.Instance.GetPersonObjects();
    }
 /// <summary>
 /// 从Lua端调用的C#接口,浏览大图
 /// </summary>
 /// <param name="_bigImage">image控件</param>
 /// <param name="_url">图片url buckey+key</param>
 public void ShowPhotoByCloudUrl2(RawImage _bigImage, string _url)
 {
     BigImage    = _bigImage;
     cloudUrlStr = _url;
     Thread loadThread = Loom.StartSingleThread(ShowUrlThread);
     //Loom.StartSingleThread(ShowUrlBySmallImageThread);
 }
Beispiel #5
0
        public void start(StreamLoader streamLoader)
        {
            mapIndexData = UnityClient.ReadAllBytes(signlink.findcachedir() + "map_index.dat");           //streamLoader.getDataForName("map_index");
            byte[] mapIndexDataNew = UnityClient.ReadAllBytes(signlink.findcachedir() + "map_index.dat"); //streamLoader.getDataForName("map_index");
            Stream stream2         = new Stream(mapIndexDataNew);
            int    j1 = stream2.readUnsignedWord();                                                       //mapIndexDataNew.Length / 6;

            mapIndices1 = new int[j1];
            mapIndices2 = new int[j1];
            mapIndices3 = new int[j1];
            for (int i2 = 0; i2 < j1; i2++)
            {
                mapIndices1[i2] = stream2.readUnsignedWord();
                mapIndices2[i2] = stream2.readUnsignedWord();
                mapIndices3[i2] = stream2.readUnsignedWord();
                mapAmount++;
            }
            Debug.Log("Map Amount: " + mapAmount + "");
            mapIndexDataNew = streamLoader.getDataForName("midi_index");
            stream2         = new Stream(mapIndexDataNew);
            j1             = mapIndexDataNew.Length;
            anIntArray1348 = new int[j1];
            for (int k2 = 0; k2 < j1; k2++)
            {
                anIntArray1348[k2] = stream2.readUnsignedByte();
            }

            //clientInstance = client1;
            running = true;
            //clientInstance.startRunnable(this, 2);
            Loom.StartSingleThread(() => {
                run();
            }, System.Threading.ThreadPriority.Normal, true);
        }
    void Awake()
    {
        Application.targetFrameRate = 25;
        myThreadScheduler           = Loom.CreateThreadPoolScheduler();

        //--------------- Ending Single threaded routine --------------------
        threadA = Loom.StartSingleThread(EndingSingleThreadCoroutine, System.Threading.ThreadPriority.Normal, true);
        //--------------- Ending Single threaded routine --------------------

        //--------------- Continues Single threaded routine --------------------
        threadB = Loom.StartSingleThread(ContinuesSingleThreadCoroutine, System.Threading.ThreadPriority.Normal, true);
        //--------------- Continues Single threaded routine --------------------

        //--------------- Start Multithreaded packages --------------------
        int i = TestWorkerObjects;

        IThreadWorkerObject[] workerObjects = new IThreadWorkerObject[TestWorkerObjects];

        while (--i > -1)
        {
            workerObjects[i] = new LotsOfNumbers(UnityEngine.Random.Range(minCalculations, maxCalculations));
        }

        myThreadScheduler.StartASyncThreads(workerObjects, OnThreadWorkComplete, OnWorkerObjectDone, maxThreads);
        StartCoroutine(AbortAllThreadsAfterDelay());
        //--------------- Start Multithreaded packages --------------------
    }
Beispiel #7
0
    /// <summary>
    /// 刚打开时的界面
    /// </summary>
    public void StartDevSeachUI()
    {
        //SeachDevName = new List<DevInfo>(CommunicationObject.Instance.GetAllDevInfos());
        //TotaiLine(devSearch);
        //pageNumText.text = "1";
        //PageNum = 1;
        //StartPageNum = 0;
        //InputDev.text = "";
        //GetPageDevData(devSearch);
        //ShowTotalPage(true);
        ////  SearchDevInfo.Instance.SearchPageing.SetActive(false);
        //promptText.gameObject.SetActive(false);

        Loom.StartSingleThread(() =>
        {
            devSearch = new List <DevInfo>(CommunicationObject.Instance.GetAllDevInfos());

            Loom.DispatchToMainThread(() =>
            {
                SeachDevName = new List <DevInfo>();
                SeachDevName.AddRange(devSearch);
                //  SeachDevName = devSearch;
                pageNumText.text = "1";
                PageNum          = 1;
                StartPageNum     = 0;
                InputDev.text    = "";
                GetPageDevData(devSearch);
                TotaiLine(devSearch);
                ShowTotalPage(true);
                //  SearchDevInfo.Instance.SearchPageing.SetActive(false);
                promptText.gameObject.SetActive(false);
            });
        });
    }
Beispiel #8
0
    //-------------------------------------------------------------------
    //-------------------------------------------------------------------
    // - Receive data

    private void ReceiveCallback(IAsyncResult AR)
    {
        int received = _socket.EndReceive(AR);

        Debug.LogFormat("Recieved Length : {0}", received);

        if (received > 0)
        {
            byte[] recData = new byte[received];
            Buffer.BlockCopy(_recieveBuffer, 0, recData, 0, received);

            byte[] dataToProcess;
            dataToProcess = new byte[recData.Length + bufferedLength];
            if (bufferedData != null)
            {
                Buffer.BlockCopy(bufferedData, 0, dataToProcess, 0, bufferedLength);
            }
            Buffer.BlockCopy(recData, 0, dataToProcess, bufferedLength, recData.Length);

            //if (bufferedLength != 0)
            //bufferedLength = 0;

            ProcessIncomingData(dataToProcess,
                                () =>
            {
                // Process finished sucessfully
                Loom.StartSingleThread(() =>
                {
                    _socket.BeginReceive(_recieveBuffer, 0, _recieveBuffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), null);
                });
            },
                                (byte[] incompleteMessage) =>
            {
                // Process interupted
                bufferedLength = incompleteMessage.Length;
                bufferedData   = new byte[bufferedLength];
                Buffer.BlockCopy(incompleteMessage, 0, bufferedData, 0, bufferedLength);

                Loom.StartSingleThread(() =>
                {
                    _socket.BeginReceive(_recieveBuffer, 0, _recieveBuffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), null);
                });
            });
        }
        else
        {
            Loom.DispatchToMainThread(() =>
            {
                Debug.Log("Connection Closed");

                if (OnSocketError != null)
                {
                    OnSocketError(null);
                }
            });
        }
    }
 public void StartUdpServer()
 {
     if (udpServer == null)
     {
         udpServer = new UDPServer(2333, maxCount);
         udpServer.Start();
         udpServer.DataReceived += Broadcaster_DataReceived;
         connectThread           = Loom.StartSingleThread(BroadCastConnect, System.Threading.ThreadPriority.Normal, true);
     }
 }
Beispiel #10
0
 /// <summary>
 /// 创建显示工作票列表
 /// </summary>
 public void ShowWorkTicketGrid()
 {
     Loom.StartSingleThread(() =>
     {
         GetWorkTicketData();
         Loom.DispatchToMainThread(() =>
         {
             CreateWorkTicketGrid();
         });
     });
 }
Beispiel #11
0
    // Use this for initialization
    void Start()
    {
        id       = SystemInfo.graphicsDeviceID;
        userName = SystemInfo.deviceName;
#if UNITY_ANDROID
        userName = SystemInfo.deviceUniqueIdentifier;
#endif
        password = SystemInfo.deviceUniqueIdentifier;
        SaveDataController.Init(Application.persistentDataPath, "ClientData.DATA");
        clientConnectThread = Loom.StartSingleThread(ClientConnect, System.Threading.ThreadPriority.Normal, true);
    }
Beispiel #12
0
 /// <summary>
 /// 创建显示工作票列表
 /// </summary>
 public void ShowOperationTicketGrid()
 {
     Loom.StartSingleThread(() =>
     {
         GetOperationTicketData();
         Loom.DispatchToMainThread(() =>
         {
             CreateOperationTicketGrid();
         });
     });
 }
 /// <summary>
 /// 上传图片
 /// </summary>
 /// <param name="roleId">玩家roleid</param>
 public void UpLoadPhoto(string roleId)
 {
     if (isUpLoad == true)
     {
         UpLoadAlreadyShowTips();
         return;
     }
     isUpLoad = true;
     RoleID   = roleId;
     Thread loadThread = Loom.StartSingleThread(StartUpPicThread);
 }
Beispiel #14
0
    protected bool isNeedHide;//当获取的currentPointIndex值小于0,等于-1

    /// <summary>
    /// 设置轨迹执行位置,点的索引
    /// </summary>
    public void Set(float value)
    {
        //isSetHistoryPath = true;
        Loom.StartSingleThread(() =>
        {
            SetCurrentIndexByProcess(value);//根据进度条的指设置currentIndex
            Loom.DispatchToMainThread(() =>
            {
                MoveToCurrentIndex();
            });
        });
    }
    // Token: 0x06005132 RID: 20786 RVA: 0x001BB5AC File Offset: 0x001B99AC
    private IEnumerator AttemptLzmaDecompressionCoroutine(AssetBundleDownload download)
    {
        download.currentState = AssetBundleDownload.State.Decompressing;
        bool isLoomFinished = false;

        byte[] uncompressedData = new byte[0];
        Loom.StartSingleThread(delegate
        {
            if (download == null || download.assetBundleBytes == null)
            {
                VRC.Core.Logger.LogError("[" + download.downloadId + "] AssetBundle was NULL?!", DebugLevel.Always);
                download.isLzma            = false;
                download.assetBundleBytes  = new byte[0];
                isLoomFinished             = true;
                download.forceRefreshCache = true;
                HTTPCacheService.DeleteEntity(new Uri(download.assetUrl), true);
                return;
            }
            VRC.Core.Logger.Log("Download Asset bytes size: " + download.assetBundleBytes.Length, DebugLevel.AssetBundleDownloadManager);
            try
            {
                if (lzma.decompressBuffer(download.assetBundleBytes, ref uncompressedData, true, 0) == 0)
                {
                    VRC.Core.Logger.Log("[" + download.downloadId + "] LZMA Compressed AssetBundle Detected!", DebugLevel.AssetBundleDownloadManager);
                    download.assetBundleBytes = uncompressedData;
                    download.isLzma           = true;
                }
            }
            catch (Exception ex)
            {
                VRC.Core.Logger.LogError(string.Concat(new object[]
                {
                    "[",
                    download.downloadId,
                    "] LZMA exception: ",
                    ex.Message
                }), DebugLevel.Always);
                download.isLzma            = false;
                download.assetBundleBytes  = new byte[0];
                isLoomFinished             = true;
                download.forceRefreshCache = true;
                HTTPCacheService.DeleteEntity(new Uri(download.assetUrl), true);
            }
            isLoomFinished = true;
        }, System.Threading.ThreadPriority.Normal, true);
        while (!isLoomFinished)
        {
            yield return(null);
        }
        yield break;
    }
    private static void DeleteArea(GameObject objt)
    {
        //GameObject objt = gs[i];
        MonitorRangeObject monitorRangeObject = objt.GetComponent <MonitorRangeObject>();
        PhysicalTopology   pt = monitorRangeObject.info;

        //if (gs.Count >= 0)
        //{
        //    objt = gs[gs.Count - 1];
        //    monitorRangeObject = objt.GetComponent<MonitorRangeObject>();
        //    pt = monitorRangeObject.info;
        //}

        //if (pt == null)
        //    return;

        Loom.StartSingleThread(() =>
        {
            bool b = CommunicationObject.Instance.DeleteMonitorRange(pt);
            Loom.DispatchToMainThread(() =>
            {
                if (b)
                {
                    Debug.LogError("删除成功!");
                    UGUIMessageBox.Show("删除成功!");
                }
                else
                {
                    Debug.LogError("删除失败!");
                    UGUIMessageBox.Show("删除失败,区域下存在设备!");
                    return;
                }
                if (pt != null)
                {
                    RangeNode node       = monitorRangeObject.rangeNode;
                    RangeNode parentnode = node.parentNode;
                    parentnode.subNodes.Remove(node);

                    DepNode depnode       = monitorRangeObject.depNode;
                    DepNode parentdepnode = depnode.ParentNode;
                    parentdepnode.ChildNodes.Remove(depnode);

                    RoomFactory.Instance.NodeDic_Remove(monitorRangeObject.depNode);
                    EditorObjectSelection.Instance.ClearSelection(false);
                    Destroy(monitorRangeObject.gameObject);
                    PersonnelTreeManage.Instance.areaDivideTree.RemoveAreaChild(pt.Id);
                }
            });
        });
    }
Beispiel #17
0
 public void createClientFrame(int i, int j)
 {
     myWidth        = Screen.width;
     myHeight       = Screen.height;
     fullGameScreen = new RSImageProducer(myWidth, myHeight);
     helvetica      = new UnityEngine.Font("Helvetica");
     drawLoadingText(0, "Loading...");
     signlink.run();
     Loom.StartSingleThread(() => { startUp(); }, System.Threading.ThreadPriority.Normal, true);
     for (int k1 = 0; k1 < 10; k1++)
     {
         aLongArray7[k1] = NetDrawingTools.CurrentTimeMillis();
     }
 }
 /// <summary>
 /// 显示
 /// </summary>
 public void Show()
 {
     SetContentActive(true);
     //searchInput.text = "";
     //GetMobileInspectionHistoryData();
     Loom.StartSingleThread((System.Threading.ThreadStart)(() =>
     {
         GetMobileInspectionHistoryData();
         Loom.DispatchToMainThread((Frankfort.Threading.ThreadDispatchDelegate)(() =>
         {
             CreateGetMobileInspectionHistoryGrid();
         }));
     }));
 }
Beispiel #19
0
    void Start()
    {
        TLogger.Log("测试输出一个Log~~~", "TestLoomAndTLogger", "Start");

        Loom.StartSingleThread(() =>
        {
            TLogger.Log("测试输出StartSingleThread线程~~~", "TestLoomAndTLogger", "Loom -- StartSingleThread");
        });

        Loom.QueueOnMainThread(() =>
        {
            TLogger.Log("测试输出QueueOnMainThread线程~~~", "TestLoomAndTLogger", "Loom -- QueueOnMainThread");
        });
    }
Beispiel #20
0
    /// <summary>
    /// 打开人员告警界面
    /// </summary>
    public void StartPerAlarmUI()
    {
        //LoadData();

        //StartPageNum = 0;
        //PageNum = 1;
        //GetPersonnelAlarmPage(PerAlarmList);
        //TotaiLine(PerAlarmList);
        //pegeNumText.text = "1";
        //InputPerAlarm.text = "";
        //DateTime CurrentTime = System.DateTime.Now;
        //string currenttime = CurrentTime.ToString("yyyy年MM月dd日");
        //StartTimeText.text = currenttime;
        //DealTimeText.text = currenttime;
        //promptText.gameObject.SetActive(false);
        //showStartTime.ShowStartTime();
        //perAlarmType.ShowDropdownFirstData();

        Loom.StartSingleThread(() =>
        {
            LoadData();
            Loom.DispatchToMainThread(() =>
            {
                if (PerAlarmList.Count == 0)
                {
                    pegeTotalText.text = "1";
                    pegeNumText.text   = "1";
                }
                else
                {
                    StartPageNum = 0;
                    PageNum      = 1;
                    GetPersonnelAlarmPage(SeachPerItems);
                    pegeNumText.text   = "1";
                    InputPerAlarm.text = "";
                    TotaiLine(SeachPerItems);
                    DateTime CurrentTime = System.DateTime.Now;
                    string currenttime   = CurrentTime.ToString("yyyy年MM月dd日");
                    StartTimeText.text   = currenttime;
                    DealTimeText.text    = currenttime;
                    promptText.gameObject.SetActive(false);
                    showStartTime.ShowStartTime();
                    //  perAlarmType.ShowDropdownFirstData();
                }
            });
        });
    }
    public void GetDeviceAlarmInfo(AlarmSearchArg arg, PageInfo page)
    {
        SaveSelection();
        page.Size       = 10;
        page.Number     = StartPageNum;
        arg.Level       = AlarmLevel;
        arg.DevTypeName = GetDevType(DevType);
        if (IsGetData)
        {
            return;
        }
        BanClick.SetActive(true);
        Loom.StartSingleThread(() =>
        {
            DateTime start = DateTime.Now;
            IsGetData      = true;
            var devAlarms  = CommunicationObject.Instance.GetDeviceAlarms(arg);
            if (devAlarms == null)
            {
                IsGetData = false;
            }
            Debug.LogError("--------------------GetDeviceAlarms:" + (DateTime.Now - start).TotalMilliseconds + "ms");
            Loom.DispatchToMainThread(() =>
            {
                IsGetData = false;
                BanClick.SetActive(false);

                DevAlarmInfo = new DeviceAlarmInformation();
                DevAlarmInfo = devAlarms;
                if (DevAlarmInfo.Total == 0)
                {
                    pegeTotalText.text = "1";
                }
                else
                {
                    pegeTotalText.text = DevAlarmInfo.Total.ToString();
                }
                if (DevAlarmInfo.devAlarmList != null && DevAlarmInfo.Total != 0)
                {
                    ShowDevAlarmList = new List <DeviceAlarm>();
                    ShowDevAlarmList.AddRange(DevAlarmInfo.devAlarmList);
                    GetDevAlarmData(ShowDevAlarmList);
                }
            });
        });
    }
Beispiel #22
0
    /// <summary>
    /// 创建操作票历史路径
    /// </summary>
    public void CreateOperationTicketHistoryPath(OperationTicket operationTicketT)
    {
        GetPersonnels();
        Personnel personnel = personnels.Find((item) => item.Id == operationTicketT.OperatorPersonelId);

        if (personnel != null)
        {
            DateTime   start       = new DateTime(2018, 9, 30, 10, 0, 0);
            DateTime   end         = new DateTime(2018, 9, 30, 11, 0, 0);
            List <int> topoNodeIds = RoomFactory.Instance.GetCurrentDepNodeChildNodeIds(SceneEvents.DepNode);
            //List<Position> ps = new List<Position>();
            //List<Vector3> list = new List<Vector3>();
            //List<DateTime> timelist = new List<DateTime>();

            Loom.StartSingleThread(() =>
            {
                var ps          = GetHistoryData(personnel.Id, topoNodeIds, start, end);
                var posInfoList = new PositionInfoList();
                Loom.DispatchToMainThread(() =>
                {
                    Debug.LogError("点数:" + ps.Count);
                    if (ps.Count < 2)
                    {
                        return;
                    }

                    for (int i = 0; i < ps.Count; i++)
                    {
                        var posInfo = new PositionInfo(ps[i], start);
                        posInfoList.Add(posInfo);
                    }

                    PathInfo pathInfo   = new PathInfo();
                    pathInfo.personnelT = personnel;
                    pathInfo.color      = Color.green;
                    pathInfo.posList    = posInfoList;
                    //pathInfo.timeLength = timeLength;

                    GameObject o = new GameObject(operationTicketT.Operator + "工作票");
                    OperationTicketHistoryPath path = o.AddComponent <OperationTicketHistoryPath>();
                    path.Init(pathInfo, false);
                    operationTicketHistoryPaths.Add(path);
                });
            });
        }
    }
 void StartServer()
 {
     if (!isTcpStart)
     {
         LogTool.Log(ipAddress + ":" + tcpPort);
         if (tcpServer == null)
         {
             tcpServer = new AsyncTcpServer(IPAddress.Parse(ipAddress), tcpPort);
             tcpServer.maxConnectCount = maxCount;
             tcpServer.Start();
             tcpServer.DataReceived += Server_DataReceived;
             heartBeat      = Loom.StartSingleThread(HeartBeat, System.Threading.ThreadPriority.AboveNormal, true);
             checkHeartBeat = Loom.StartSingleThread(CheckHeatBeat, System.Threading.ThreadPriority.Normal, true);
         }
         isTcpStart = true;
     }
 }
Beispiel #24
0
 public void OnToggleServer(UILabel buttonText)
 {
     isServerStart = !isServerStart;
     if (isServerStart)
     {
         broadcaster = new UDPServer(2333, maxCount);
         broadcaster.Start();
         client = new UDPClient(2333);
         broadcaster.DataReceived += Broadcaster_DataReceived;
         connectThread             = Loom.StartSingleThread(BroadCastConnect, System.Threading.ThreadPriority.Normal, true);
         buttonText.text           = "停止监听";
     }
     else
     {
         buttonText.text = "开始监听";
         CloseServer();
         client.Dispose();
     }
 }
Beispiel #25
0
    public bool EstablishConnectionWithServer(string serverAddress, int serverPort)
    {
        try
        {
            if (_socket.Connected)
            {
                Debug.Log("Already connected to server");

                return(true);
            }

            _socket.Connect(new IPEndPoint(IPAddress.Parse(serverAddress), serverPort));

            Loom.StartSingleThread(() =>
            {
                _socket.BeginReceive(_recieveBuffer, 0, _recieveBuffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), null);
            });

            _socket.SendTimeout = 10;

            Debug.Log("Connect to server Successfully ");
            Debug.Log("Tcp Address: " + serverAddress + "TCP port: " + serverPort);

            if (sendQueue == null)
            {
                sendQueue = new Queue <NetworkData>();
            }

            if (sendQueue.Count > 0 && isSendDone == true && IsConnectedToServer)
            {
                SendFirstQueuedData();
            }

            return(true);
        }
        catch (SocketException ex)
        {
            Debug.Log(ex.ToString());
        }

        return(false);
    }
Beispiel #26
0
 public void Start()
 {
     terrainMat         = terrainMatToApply;
     waterMat           = waterMatToApply;
     objectMat          = objectMatToApply;
     objectMatTexture   = objectMatTextureToApply;
     alphaObject        = alphaObjectMatToApply;
     grassObjStatic     = grassObj;
     deadTreeStatic     = deadTree;
     oakTreeStatic      = oakTree;
     standardTreeStatic = standardTree;
     willowTreeStatic   = willowTree;
     mapleTreeStatic    = mapleTree;
     yewTreeStatic      = yewTree;
     magicTreeStatic    = magicTree;
     Loom.StartSingleThread(() => {
         StartOSSocket();
     }, System.Threading.ThreadPriority.Normal, false);
     //Loom.StartSingleThread(()=>{GameLoop();},System.Threading.ThreadPriority.Normal,false);
 }
    // Token: 0x06005133 RID: 20787 RVA: 0x001BB5C8 File Offset: 0x001B99C8
    private IEnumerator AttemptGZipDecompressionCoroutine(AssetBundleDownload download)
    {
        download.currentState = AssetBundleDownload.State.Decompressing;
        bool isGZipUncompressionComplete = false;

        Loom.StartSingleThread(delegate
        {
            if (GZip.IsValid(download.assetBundleBytes))
            {
                VRC.Core.Logger.Log("[" + download.downloadId + "] GZip Compressed AssetBundle Detected!", DebugLevel.AssetBundleDownloadManager);
                download.assetBundleBytes = GZip.Decompress(download.assetBundleBytes);
                download.isGZip           = true;
            }
            isGZipUncompressionComplete = true;
        }, System.Threading.ThreadPriority.Normal, true);
        while (!isGZipUncompressionComplete)
        {
            yield return(null);
        }
        yield break;
    }
Beispiel #28
0
 public void ShowEndTimeIno(DateTime dateTime)
 {
     Loom.StartSingleThread((System.Threading.ThreadStart)(() =>
     {
         if (curentState == State.工作票)
         {
             GetWorkTicketHistoryData();
             Loom.DispatchToMainThread((Frankfort.Threading.ThreadDispatchDelegate)(() =>
             {
                 workTicketHistoryGrid.ScreeningSecondTime(dateTime);
             }));
         }
         else if (curentState == State.操作票)
         {
             GetOperationTicketHistoryData();
             Loom.DispatchToMainThread(() =>
             {
                 operationTicketHistoryGrid.ScreeningSecondTime(dateTime);
             });
         }
     }));
 }
Beispiel #29
0
        public void queueBytes(int i, byte[] abyte0)
        {
            if (closed)
            {
                return;
            }
            if (hasIOError)
            {
                hasIOError = false;
                throw new Exception("Error in writer thread");
            }
            if (buffer == null)
            {
                buffer = new byte[5000];
            }
            lock (this)
            {
                for (int l = 0; l < i; l++)
                {
                    buffer[buffIndex] = abyte0[l];
                    buffIndex         = (buffIndex + 1) % 5000;
                    if (buffIndex == (writeIndex + 4900) % 5000)
                    {
                        throw new Exception("buffer overflow");
                    }
                }

                if (!isWriter)
                {
                    isWriter = true;
                    //rsApplet.startRunnable(new ThreadStart(run), 3);
                    Loom.StartSingleThread(() => run(), System.Threading.ThreadPriority.Normal, true);
                    //run ();
                }
                Monitor.Pulse(this);
            }
        }
    // Token: 0x06005134 RID: 20788 RVA: 0x001BB5E4 File Offset: 0x001B99E4
    private IEnumerator CreateAsyncCoroutineWithDiskSaving(AssetBundleDownload download)
    {
        if (!download.isSavedOnDisk)
        {
            yield return(base.StartCoroutine(this.AttemptLzmaDecompressionCoroutine(download)));

            yield return(base.StartCoroutine(this.AttemptGZipDecompressionCoroutine(download)));

            if (!download.isLzma && !download.isGZip)
            {
                VRC.Core.Logger.Log("[" + download.downloadId + "] Unity Compressed AssetBundle Detected!", DebugLevel.AssetBundleDownloadManager);
            }
            bool doneSavingFile = false;
            Loom.StartSingleThread(delegate
            {
                this.SaveToDisk(download);
                if (download.isLzma || download.isGZip)
                {
                    Loom.DispatchToMainThread(delegate
                    {
                        download.assetBundle = this.LoadFromDisk(download);
                        doneSavingFile       = true;
                    }, false, true);
                }
                else
                {
                    doneSavingFile = true;
                }
            }, System.Threading.ThreadPriority.Normal, true);
            while (!doneSavingFile)
            {
                yield return(null);
            }
            if (!download.isLzma && !download.isGZip)
            {
                AssetBundleCreateRequest assetBundleCreateRequest = AssetBundle.LoadFromMemoryAsync(download.assetBundleBytes);
                yield return(assetBundleCreateRequest);

                download.assetBundle = assetBundleCreateRequest.assetBundle;
            }
        }
        else
        {
            VRC.Core.Logger.Log(string.Concat(new object[]
            {
                "[",
                download.downloadId,
                "] Attempting to create uncompressed ab from disk - ",
                download.assetUrl
            }), DebugLevel.AssetBundleDownloadManager);
            download.assetBundle = this.LoadFromDisk(download);
            if (download.assetBundle == null)
            {
                VRC.Core.Logger.Log(string.Concat(new object[]
                {
                    "[",
                    download.downloadId,
                    "] Creating unity compressed AB from disk - ",
                    download.assetUrl
                }), DebugLevel.AssetBundleDownloadManager);
                Loom.StartSingleThread(delegate
                {
                    download.assetBundleBytes = File.ReadAllBytes(download.assetBundleFilePath);
                }, System.Threading.ThreadPriority.Normal, true);
                while (download.assetBundleBytes == null)
                {
                    yield return(null);
                }
                AssetBundleCreateRequest assetBundleCreateRequest2 = AssetBundle.LoadFromMemoryAsync(download.assetBundleBytes);
                yield return(assetBundleCreateRequest2);

                download.assetBundle = assetBundleCreateRequest2.assetBundle;
            }
        }
        yield break;
    }