/// <summary> /// Запускает потоки отслеживающие изменения счёты рынков. Так же метод вызывает запуск события, для отображения загрузки. /// </summary> public void StartThreads() { LoadedEvent?.Invoke(new LoadedEventArgs(true, false)); var thread = new Thread(() => {; //Load all markets GetAll(TypeDBO.BetFair); GetAll(TypeDBO.Bet365); GetAll(TypeDBO.SkyBet); //End load markets }); thread.Start(); while (true) { if (isStop) { return; } if ((NewSkyBet.isLoad) && (Bet365.isLoad)) { break; } Application.DoEvents(); Thread.Sleep(100); } LoadedEvent?.Invoke(new LoadedEventArgs(false, true)); }
public void ItConvertsLoadedEvents() { var type = new EmployeeTypeMap() .Single(o => o.type == typeof(EmployeeHired)).name; var evt = A.Dummy <EmployeeHired>(); var json = JsonConvert.SerializeObject(evt); var bytes = Encoding.UTF8.GetBytes(json); var loaded = new LoadedEvent { Type = type, Data = bytes }; var result = sut.ConvertReadToDomain(new EmployeeTypeMap(), loaded); result.Should().BeEquivalentTo(evt); }
protected virtual void RaiseLoadedEvent() { // Raise the event in a thread-safe manner using the ?. operator. LoadedEvent?.Invoke(this, new EventArgs()); }
/// <summary> /// 本地资源加载 /// 从Resources加载一个资源 /// </summary> /// <param name="prefabName">资源名称</param> /// <param name="type">资源类型</param> /// <param name="loadedAction">加载完成后的回调</param> /// <param name="isKeepInMemory">是否长期保存在内存中</param> public void LoadAssetQueue(string assetName, string assetBundleName = null, LoadedEvent loadedEvent = null, Type type = null, bool isKeepInMemory = false) { // 是否已下载 AssetInfo assetInfo = GetOrAddAssetInfo(assetName, assetBundleName); // 下载资源为空 if (assetInfo.IsLoaded) // TODO 如果正在加载中怎么办??? { if (loadedEvent != null) { loadedEvent(assetInfo.AssetObjectCache); } return; } // 检测当前资源是否已处于下载中 for (int i = 0; i < _loadingList.Count; ++i) { RequestAsset request = _loadingList[i]; if (assetBundleName == null && request.AssetInfo.AssetBundleName == null) { if (request.AssetInfo.AssetName.Equals(assetName)) { request.LoadedEvent += loadedEvent; return; } } else if (request.AssetInfo.AssetBundleName != null) { string key1 = request.AssetInfo.AssetName + "@" + request.AssetInfo.AssetBundleName; string key2 = assetName + "@" + assetBundleName; if (key1.Equals(key2)) { request.LoadedEvent += loadedEvent; return; } } } // 检测当前资源是否处于等待下载中 foreach (RequestAsset request in _waitLoads) { if (assetBundleName == null && request.AssetInfo.AssetBundleName == null) { if (request.AssetInfo.AssetName.Equals(assetName)) { request.LoadedEvent += loadedEvent; return; } } else if (request.AssetInfo.AssetBundleName != null) { string key1 = request.AssetInfo.AssetName + "@" + request.AssetInfo.AssetBundleName; string key2 = assetName + "@" + assetBundleName; if (key1.Equals(key2)) { request.LoadedEvent += loadedEvent; return; } } } // 创建新的异步资源下载请求,设置回调监听,并保存到等待下载队列 { RequestAsset request = new RequestAsset(); request.LoadedEvent += loadedEvent; request.AssetInfo = assetInfo; request.AssetInfo.IsKeepInMemory = isKeepInMemory; _waitLoads.Enqueue(request); } }
void Start() { Task.Run(LoadAbilities).ContinueWith(result => LoadedEvent?.Invoke(abilities), TaskScheduler.FromCurrentSynchronizationContext()); }