public void can_use_multiple_threads() { using (var scheduler = new ThreadScheduler(5)) { scheduler.Start(() => { }); scheduler.Threads.ShouldHaveCount(5); } }
private void RestoreDevice() { if (RestoreThread == null) { RestoreThread = new ThreadScheduler(); RestoreThread.Name = "RestoreThread"; RestoreThread.IsBackground = false; } RestoreThread.Start(new Action(() => { Restore.Start(); })); }
private void GetiDevice() { if (DeviceCheckerThread == null) { DeviceCheckerThread = new ThreadScheduler(); DeviceCheckerThread.Name = "DeviceCheckerThread"; DeviceCheckerThread.IsBackground = true; } DeviceCheckerThread.Start(new Action(() => { while (KeepCheckingiDevices) { DeviceConnected = ConnectedDevice.CheckforDevices(); if (DeviceConnected) { ConnectedDevice.ConnectToDevice(); } else { ConnectedDevice.DiconnectDevice(); } if (deviceNameLbl.InvokeRequired) { deviceNameLbl.BeginInvoke((MethodInvoker) delegate() { SetLabelText(deviceNameLbl, NoDeviceName + ConnectedDevice.Name); }); } if (deviceModelLbl.InvokeRequired) { deviceModelLbl.BeginInvoke((MethodInvoker) delegate() { SetLabelText(deviceModelLbl, NoModel + ConnectedDevice.DeviceIdentifier); }); } if (deviceVersionLbl.InvokeRequired) { deviceVersionLbl.BeginInvoke((MethodInvoker) delegate() { SetLabelText(deviceVersionLbl, NoVersion + ConnectedDevice.Version); }); } Thread.Sleep(1000); } })); }
private void buttonStressTest_Click(object sender, EventArgs e) { if (_StressTester == null) { if (!_reqSession.IsSigned()) { MessageBox.Show("客户端尚未登录", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); return; } _StressTester = new ThreadScheduler <WebRequestSession>(); WebRequestSession req = null; req = _reqSession.Clone(); req.delay = Convert.ToInt32(this.textBoxThreadDelay.Text); req.url = "/caxa/get_task_list"; _StressTester.EnqueueTask(req); req = _reqSession.Clone(); req.delay = Convert.ToInt32(this.textBoxThreadDelay.Text); req.url = "/caxa/get_task?task_id=0Hck3KI5kEmJWh"; _StressTester.EnqueueTask(req); req = _reqSession.Clone(); req.delay = Convert.ToInt32(this.textBoxThreadDelay.Text); req.url = "/caxa/get_object_data?proc_id=4CE089D6-9FB9-40AF-A27A-33948FC5FC3C&object_id=02ck3KICw6x5Tb&flag=front";//E09E68C9-EEDA-4966-AA4D-DCCCE465074B&object_id=0Hck3KI5kEmJWh&flag="; _StressTester.EnqueueTask(req); req = _reqSession.Clone(); req.delay = Convert.ToInt32(this.textBoxThreadDelay.Text); req.url = "/caxa/get_settings"; _StressTester.EnqueueTask(req); req = _reqSession.Clone(); req.delay = Convert.ToInt32(this.textBoxThreadDelay.Text); req.url = "/caxa/get_picture?task_id=0Hck3KI5kEmJWh"; _StressTester.EnqueueTask(req); _StressTester._Processor = DownloadJobData; _StressTester.SetMode(ThreadScheduler <WebRequestSession> .MODE_REPEAT); int nThreads = 2; try{ nThreads = Convert.ToInt32(this.textBoxThreads.Text); } catch (Exception em) { } AppendLog("Threads: " + nThreads.ToString()); _StressTester.Start(nThreads); tStressStarted = DateTime.Now; this.buttonStressTest.Text = "停 止"; _Running = true; } else { if (_reqSession.cts != null) { _reqSession.cts.Cancel(); } _StressTester.Stop(); _StressTester = null; this.buttonStressTest.Text = "多线程并发测试"; _Running = false; } }