//[Test] public void ConcurrencyTest() { ConcurrentObject num = new ConcurrentObject(); int count = 100000; Thread t = new Thread(() => { for (int i = 0; i < count; i++) { num.Add(); } }); Thread t2 = new Thread(() => { for (int i = 0; i < count; i++) { num.Sub(); } }); t.Start(); t2.Start(); t.Join(); t2.Join(); Assert.AreEqual(0, num.Num); }
private void PerformTest() { ConcurrentObject c1 = (ConcurrentObject)factory.GetObject("object1"); ConcurrentObject c2 = (ConcurrentObject)factory.GetObject("object2"); Assert.AreEqual(date1, c1.Date); Assert.AreEqual(date2, c2.Date); }
public async Task SetAsync(string key, ConcurrentObject value) { if (key == null) { throw new ArgumentNullException(nameof(key)); } if (value == null) { throw new ArgumentNullException(nameof(value)); } var serializedObject = JsonConvert.SerializeObject(value); await _distributedCache.SetAsync(key.ToString(), Encoding.UTF8.GetBytes(serializedObject), new DistributedCacheEntryOptions { AbsoluteExpiration = DateTime.UtcNow.AddYears(2) }); }
public void ThreadRing() { var errors = null as IEnumerable <Diagnostic>; var node = TestRuntime .Concurrent .Build(@" concurrent class ring_item { int _idx; public ring_item(int idx) { _idx = idx; } public ring_item Next {get; set;} static int ITERATIONS = 50*1000*1000; public void token(int value) { if (value >= ITERATIONS) { console.write(_idx); Node.Stop(); } else Next.token(value + 1); } }", out errors, threads: 1); //must not have compilation errors Assert.IsNull(errors); const int ringCount = 503; //create the ring var items = new ConcurrentObject[ringCount]; for (int i = 0; i < ringCount; i++) { items[i] = node.Spawn("ring_item", i); } //update connectivity for (int i = 0; i < ringCount; i++) { var curr = items[i]; var next = i < ringCount - 1 ? items[i + 1] : items[0]; TestRuntime.Concurrent.Send(curr, "Next", next); } Stopwatch sw = new Stopwatch(); sw.Start(); { //run it by sending the first token, it will go around 50M times TestRuntime.Concurrent.Send(items[0], "token", 0); node.WaitForCompletion(); } sw.Stop(); TimeSpan rt = TimeSpan.FromTicks(sw.ElapsedTicks); var ts = rt.TotalSeconds.ToString(); Assert.IsNotNull(ts); }
public void Set(string key, ConcurrentObject value) { SetAsync(key, value).Wait(); }
public Task SetAsync(string key, ConcurrentObject value) { return Task.Factory.StartNew(() => Set(key, value)); }
public void Set(string key, ConcurrentObject value) { _memoryCache.Set(key, value); }
/// <summary> /// 根据指定的资源类型创建一个资源对象 /// </summary> /// <param name="objType">资源类型编码</param> /// <returns></returns> public static ConfigObject CreateObject(int objType) { ConfigObject configObject; switch (objType) { case S1110Consts.RESOURCE_MACHINE: configObject = new MachineObject(); break; case S1110Consts.RESOURCE_LICENSESERVER: configObject = new LicenseServiceObject(); break; case S1110Consts.RESOURCE_ALARMSERVER: configObject = new AlarmServerObject(); break; case S1110Consts.RESOURCE_VOICESERVER: configObject = new VoiceServiceObject(); break; case S1110Consts.RESOURCE_DATATRANSFERSERVER: case S1110Consts.RESOURCE_CTIHUBSERVER: case S1110Consts.RESOURCE_DBBRIDGE: case S1110Consts.RESOURCE_ALARMMONITOR: case S1110Consts.RESOURCE_SFTP: case S1110Consts.RESOURCE_SCREENSERVER: case S1110Consts.RESOURCE_ISASERVER: case S1110Consts.RESOURCE_CMSERVER: case S1110Consts.RESOURCE_KEYGENERATOR: case S1110Consts.RESOURCE_FILEOPERATOR: case S1110Consts.RESOURCE_SPEECHANALYSISPARAM: case S1110Consts.RESOURCE_RECOVERSERVER: case S1110Consts.RESOURCE_CAPTURESERVER: configObject = new ServiceObject(); break; case S1110Consts.RESOURCE_STORAGEDEVICE: configObject = new StorageDeviceObject(); break; case S1110Consts.RESOURCE_PBXDEVICE: configObject = new PBXDeviceObject(); break; case S1110Consts.RESOURCE_CHANNEL: configObject = new VoiceChannelObject(); break; case S1110Consts.RESOURCE_SCREENCHANNEL: configObject = new ChannelObject(); break; case S1110Consts.RESOURCE_NETWORKCARD: configObject = new NetworkCardObject(); break; case S1110Consts.RESOURCE_VOIPPROTOCAL: configObject = new VoipProtocalObject(); break; case S1110Consts.RESOURCE_CONCURRENT: configObject = new ConcurrentObject(); break; case S1110Consts.RESOURCE_CTICONNECTION: configObject = new CTIConnectionObject(); break; case S1110Consts.RESOURCE_CTICONNECTIONGROUP: configObject = new CTIConnectionGroupObject(); break; case S1110Consts.RESOURCE_CTICONNECTIONGROUPCOLLECTION: configObject = new CTIConnectionGroupCollectionObject(); break; case S1110Consts.RESOURCE_DOWNLOADPARAM: configObject = new DownloadParamObject(); break; case S1110Consts.RESOURCE_ALARMMONITORPARAM: configObject = new AlarmMonitorParamObject(); break; case S1110Consts.RESOURCE_CTIDBBRIDGE: configObject = new CTIDBBServerObject(); break; case S1110Consts.RESOURCE_ALARMSERVICE: configObject = new AlarmServiceObject(); break; case S1110Consts.RESOURCE_ALARMPROCESS: configObject = new AlarmProcessObject(); break; default: configObject = new ConfigObject(); break; } configObject.ObjectType = objType; return(configObject); }
public Task SetAsync(string key, ConcurrentObject value) { return(Task.Factory.StartNew(() => Set(key, value))); }