public RealDataServerProcess() { mTagManager = ServiceLocator.Locator.Resolve <ITagManager>(); mTagConsumer = ServiceLocator.Locator.Resolve <IRealTagConsumer>(); ServiceLocator.Locator.Resolve <IRealDataNotify>().SubscribeValueChangedForConsumer("RealDataServerProcess", new ValueChangedNotifyProcesser.ValueChangedDelegate((ids, len) => { lock (mChangedTags) { int[] vtmp = ArrayPool <int> .Shared.Rent(len); Array.Copy(ids, 0, vtmp, 0, len); mChangedTags.Enqueue(new Tuple <int[], int>(vtmp, len)); } if (!mIsClosed) { resetEvent.Set(); } }), new ValueChangedNotifyProcesser.BlockChangedDelegate((bids) => { if (mBlockCallBackRegistorIds.Count > 0) { lock (mChangedBlocks) mChangedBlocks.Enqueue(bids); } if (!mIsClosed) { resetEvent.Set(); } }), null, RealDataNotifyType.Block); }
public RealDataServerProcess() { mTagManager = ServiceLocator.Locator.Resolve <ITagManager>(); mTagConsumer = ServiceLocator.Locator.Resolve <IRealTagConsumer>(); DatabaseRunner.Manager.ValueUpdateEvent += Manager_ValueUpdateEvent; }