private static void ConvertImageCubeToBitmap(object currentParameterObj) { ThreadParameter currentParameter = (ThreadParameter)currentParameterObj; // int j = currentParameter.heightMinValue; for (int i = currentParameter.widthMinValue; i < currentParameter.widthMaxValue; i++) { //for (j = 0; j < currentParameter.heightMaxValue - 1; j++) //{ Parallel.For(0, currentParameter.heightMaxValue, j => { //imagebyte[i,j,0]= (byte)currentParameter.triBandImageVector[i, j, 0]; //imagebyte[i , j ,1] = (byte)currentParameter.triBandImageVector[i, j, 1]; //imagebyte[i , j ,2] = (byte)currentParameter.triBandImageVector[i, j, 2]; lock (currentParameter.currentTRIBandImage) { //if (j >= currentParameter.heightMaxValue) // continue; currentParameter.currentTRIBandImage.SetPixel(i, j, Color.FromArgb( currentParameter.triBandImageVector[i, j, 0], currentParameter.triBandImageVector[i, j, 1], currentParameter.triBandImageVector[i, j, 2])); } }); } }
public void StartApplyQueue(string qName) { ThreadParameter p = new ThreadParameter(); p.QName = qName; ThreadPool.QueueUserWorkItem(new WaitCallback(ApplyQueue), p); }
private void Execute(object paremeter) { ThreadParameter p = paremeter as ThreadParameter; String DataIndex = p.DataIndex; String invalidItem = p.InvalidItem; string[] cells = GetSMSCells(); if (cells.Length == 0) { logger.Error("获取短信收件人电话失败,未设置SMSCells"); return; } string smsContent = GetSMSContent(DataIndex, invalidItem); if (String.IsNullOrEmpty(smsContent)) { logger.Error("获取短信内容失败,错误报告ID为:" + DataIndex); return; } smsContent = smsContent + " " + DateTime.Now; var errorMsg = ""; errorMsg = SMSAgent.CallRemoteService(cells, smsContent); RecordSMSItem(DataIndex, cells, smsContent, errorMsg); string smsTower = smsContent.ToUpper(); #region 给领导发 if (smsTower.Contains("#VALUE") || smsTower.Contains("TRUE") || smsTower.Contains("FALSE") || smsTower.Contains("#N/A") || smsTower.Contains("#REF!") || smsTower.Contains("#DIV/0!") || smsTower.Contains("#NUM!") || smsTower.Contains("#NAME?") || smsTower.Contains("#NULL!") || smsTower.Contains("第一根断后伸长率的实测值为-") || smsTower.Contains("第二根断后伸长率的实测值为-") || smsTower.Contains("第一根屈服点的实测值为0") || smsTower.Contains("第二根屈服点的实测值为0") ) { logger.Error("内含关键词,不发送短信,DataID=" + DataIndex); } else { string[] cellsleader = GetSMSCellsLeader(DataIndex); if (cellsleader.Length > 0) { errorMsg = SMSAgent.CallRemoteService(cellsleader, smsContent); RecordSMSItem(DataIndex, cellsleader, smsContent, errorMsg); } } #endregion //给App推送消息 SendAppMessage(p.LineID, DataIndex, p.TestRoomCode, p.SegmentName, p.CompanyName, p.TestRoomName, p.LineName, 1, smsContent); }
public void StartApplyQueue(string LineID)//Guid _DataID, Guid _TestDataID { ThreadParameter p = new ThreadParameter(); p.LineID = LineID; //p.DataID = _DataID; //p.TestDataID = _TestDataID; ThreadPool.QueueUserWorkItem(new WaitCallback(ApplyQueue), p); }
private void Execute(object paremeter) { logger.Error("DataCopyHandler::Function"); Boolean Result = false; ThreadParameter p = paremeter as ThreadParameter; String ModelIndex = p.ModelIndex; DataSet Data = p.Data; StringBuilder sql_Select = new StringBuilder(); sql_Select.Append("Select TableName,Contents from sys_moduleview where ModuleID ='"); sql_Select.Append(ModelIndex); sql_Select.Append("' and Description='报告日期'"); DataTable Table = GetDataTable(sql_Select.ToString()); if (Table != null && Table.Rows.Count > 0) { DataRow Row = Table.Rows[0]; String TableName = Row["TableName"].ToString(); String FieldName = Row["Contents"].ToString(); DataTable TempData = Data.Tables[string.Format("[{0}]", TableName)]; String DataID = TempData.Rows[0]["ID"].ToString(); object ReportDate = TempData.Rows[0][FieldName].ToString(); try { StringBuilder sql_Update = new StringBuilder(); sql_Update.Append("Update "); sql_Update.Append(string.Format("[biz_norm_extent_{0}]", ModelIndex)); sql_Update.Append(" set BGRQ='"); sql_Update.Append(ReportDate); sql_Update.Append("' where ID='"); sql_Update.Append(DataID); sql_Update.Append("'"); object r = ExcuteCommand(sql_Update.ToString()); Result = (Convert.ToInt32(r) == 1); } catch (Exception ex) { logger.Error("DataCopyHandler::Function出错,原因是" + ex.Message); } String Msg = (Result? "复制报告日期成功。":"复制报告日期失败"); logger.Error("DataCopyHandler::Function消息:" + Msg); } else { logger.Error(string.Format("模板ID‘{0}’在 sys_moduleview 中未找到“报告日期”显示项。", ModelIndex)); } }
public void CreateRalationFiles(FpSpread fpSpread, Guid documentID, Int32 reportIndex, string docDateDir) { ThreadParameter p = new ThreadParameter(); p.fpSpread = fpSpread; p.documentID = documentID; p.reportIndex = reportIndex; p.docDateDir = docDateDir; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); }
private ThreadResult CleanVisibleModelsList(ThreadParameter parameter) { List <ModelController> visibleModels = parameter.Argument <List <ModelController> >(0); if (visibleModels != null) { visibleModels.Clear(); } return(null); }
public void InitStadium(String ModelIndex, DataSet dataset) { ThreadParameter p = new ThreadParameter(); p.Data = dataset; p.ModelIndex = ModelIndex; ApplicationContext context = ApplicationContext.Current; p.UserName = context.UserName; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); }
private void RegesterClient(object paremeter) { ThreadParameter tp = paremeter as ThreadParameter; var client = new MessageClient(); client.ReceiveMessage = OnReceiveMessage; InstanceContext instanceContext = new InstanceContext(client); NetTcpBinding ntb = new NetTcpBinding(SecurityMode.None); channelFactory = new DuplexChannelFactory <IMessageService>( instanceContext, ntb, "net.tcp://nsmsg.kingrocket.com:9999/KingrocketMessageService/"); //instanceContext, ntb, "net.tcp://115.29.206.137:9999/KingrocketMessageService/");//115.29.206.137 svc = channelFactory.CreateChannel(); try { using (var scope = new OperationContextScope(svc as IContextChannel)) { var myNamespace = "http://nsmsg.kingrocket.com"; // 注意Header的名字中不能出现空格,因为要作为Xml节点名。 var MHLineID = MessageHeader.CreateHeader("LineID", myNamespace, tp.LineID); var MHUserName = MessageHeader.CreateHeader("UserName", myNamespace, tp.UserName); var MHLineName = MessageHeader.CreateHeader("LineName", myNamespace, tp.LineName); var MHTestRoomCode = MessageHeader.CreateHeader("TestRoomCode", myNamespace, tp.TestRoomCode); var MHSegmentName = MessageHeader.CreateHeader("SegmentName", myNamespace, tp.SegmentName); var MHCompanyName = MessageHeader.CreateHeader("CompanyName", myNamespace, tp.CompanyName); var MHTestRoomName = MessageHeader.CreateHeader("TestRoomName", myNamespace, tp.TestRoomName); OperationContext.Current.OutgoingMessageHeaders.Add(MHLineID); OperationContext.Current.OutgoingMessageHeaders.Add(MHUserName); OperationContext.Current.OutgoingMessageHeaders.Add(MHLineName); OperationContext.Current.OutgoingMessageHeaders.Add(MHTestRoomCode); OperationContext.Current.OutgoingMessageHeaders.Add(MHSegmentName); OperationContext.Current.OutgoingMessageHeaders.Add(MHCompanyName); OperationContext.Current.OutgoingMessageHeaders.Add(MHTestRoomName); svc.RegisterClient(); timer = new System.Threading.Timer(p => { try { svc.Ping(); } catch (Exception exx) { logger.Error("timer error:" + exx.Message); } }, null, 1000 * 60 * 5, 1000 * 60 * 5); } } catch (Exception ex) { logger.Error("ClientHelper error:" + ex.Message); } }
private void ApplyQueue(object paremeter) { ThreadParameter p = paremeter as ThreadParameter; var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection(999999)) { using (var channel = connection.CreateModel()) { QueueingBasicConsumer consumer = null; var queue_name = channel.QueueDeclare(p.LineID, true, false, false, null);//持久化队列 if (queue_name.ConsumerCount > 0) { return; } consumer = new QueueingBasicConsumer(channel); channel.BasicConsume(p.LineID, false, consumer); //channel.BasicQos(0, 1, false); Boolean hasNext = true; while (hasNext) { byte[] body = null; var message = ""; BasicDeliverEventArgs ea = null; try { //Thread.Sleep(3000); consumer.Queue.Dequeue(3000, out ea); if (ea != null) { body = ea.Body; message = Encoding.UTF8.GetString(body); string[] ss = message.Split(','); if (ss.Length == 2) { DealCaiJi(new Guid(ss[0]), new Guid(ss[1])); } channel.BasicAck(ea.DeliveryTag, false); } } catch (Exception ex) { logger.Error(string.Format("【{0}】RabbitMQ ApplyQueue message:{1} error:{2}", p.LineID, message, ex.ToString())); } } } } }
private void Execute(object paremeter) { ThreadParameter p = paremeter as ThreadParameter; JZDocument document = p.document; Sys_Module module = p.module; String invalidString = ""; if (module != null) { if (module.QualifySettings != null && module.QualifySettings.Count > 0) { foreach (QualifySetting qs in module.QualifySettings) { Object obj = JZCommonHelper.GetCellValue(document, qs.SheetID, qs.CellName); if (obj != null && obj.ToString() != "") { invalidString = obj.ToString().Trim(' ', '\r', '\n'); break; } } } } if (invalidString != "") { try { String[] arr = invalidString.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (arr.Length < 3) { logger.Error("无效的不合格短信内容,document的ID为" + document.ID + ";短信内容为:" + invalidString); return; } Boolean needSendSMS = false; SMSManager smsManager = new SMSManager(); if (!p.IsAdministrator) { needSendSMS = smsManager.NeedSendSMS(document.ID.ToString(), invalidString); logger.Error(invalidString + "needsendsms=" + needSendSMS); } if (needSendSMS) { smsManager.SendSMS(document.ID.ToString(), invalidString, p.LineID, p.TestRoomCode, p.SegmentName, p.CompanyName, p.TestRoomName, p.LineName); } } catch (Exception ex) { logger.Error("更新合格字段IsQualified失败,原因是" + ex.Message); } } icm.SyncInvalidReport(document.ID, invalidString); }
public void Start(string address, int port, Func <bool> isReady, bool debug = false) { try { this.debug = debug; _isReady = isReady; _clientReceiveThread = new Thread(ListenForData); _clientReceiveThread.IsBackground = true; var parameters = new ThreadParameter(address, port); _clientReceiveThread.Start(parameters); } catch (Exception e) { LogError(e); } }
//Thread ServiceThread = null; public ClientHelper(string LineID, string UserName, string LineName, string TestRoomCode, string SegmentName, string CompanyName, string TestRoomName) { ThreadParameter parameter = new ThreadParameter(); parameter.UserName = UserName; parameter.LineID = LineID; parameter.LineName = LineName; parameter.TestRoomCode = TestRoomCode; parameter.SegmentName = SegmentName; parameter.CompanyName = CompanyName; parameter.TestRoomName = TestRoomName; ThreadPool.QueueUserWorkItem(new WaitCallback(RegesterClient), parameter); }
public override void Execute(VsCommandEventArgs e) { DTE2 application = e.Application; var activeDocument = application.ActiveDocument; var documentPath = activeDocument.FullName; if (!activeDocument.Saved && !activeDocument.ReadOnly) { activeDocument.Save(documentPath); } var settingsManager = SettingsManager.GetInstance(application); var dbConnectionParameter = CreateDbConnectionParameter(settingsManager.CurrentDbConnectionParameter, activeDocument); var csqGuiParameter = settingsManager.CurrentScriptParameter; var csqlOptions = CreateCSqlOptions(dbConnectionParameter, csqGuiParameter, activeDocument); TextSelection selection = activeDocument.Selection as TextSelection; int fromChar = -1; int toChar = -1; if (selection != null) { var fromPoint = selection.TopPoint; var toPoint = selection.BottomPoint; if (fromPoint != null && toPoint != null) { fromChar = fromPoint.AbsoluteCharOffset - 1; toChar = toPoint.AbsoluteCharOffset - 1; } } if (fromChar >= 0 && toChar > fromChar) { csqlOptions.PreprocessorOptions.SetRange(fromChar, toChar); } var thread = new System.Threading.Thread(Thread_Start); var parameter = new ThreadParameter(); parameter.Application = application; parameter.CSqlOptions = csqlOptions; thread.IsBackground = true; thread.Start(parameter); if (!csqGuiParameter.IsOutputFileEnabled) { settingsManager.SaveDbConnectionParameterInMruHistory(dbConnectionParameter); } }
/// <summary> /// 将试验报告中的报告日期复制到表外数据表的BGRQ字段中 /// </summary> public void Function(List <string> IDList, String ModelIndex, DataSet Data) { if (IDList.Count == 0) { return; } ThreadParameter p = new ThreadParameter(); p.ModelIndex = ModelIndex; p.Data = Data; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); }
/// <summary> /// 验证试验报告中每个试验项目是否合格 /// </summary> public void Evaluation(List <string> IDList, String ModelIndex, DataSet Data) { if (IDList.Count == 0) { return; } ThreadParameter p = new ThreadParameter(); p.ModelIndex = ModelIndex; p.Data = Data; p.IsAdministrator = ApplicationContext.Current.IsAdministrator; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); }
public void Qualify(JZDocument document, Sys_Module module) { ThreadParameter p = new ThreadParameter(); p.document = document; p.module = module; p.IsAdministrator = ApplicationContext.Current.IsAdministrator; p.LineID = ApplicationContext.Current.InProject.Index; p.TestRoomCode = ApplicationContext.Current.InTestRoom.Code; p.SegmentName = ApplicationContext.Current.InSegment.Description; p.CompanyName = ApplicationContext.Current.InCompany.Description; p.TestRoomName = ApplicationContext.Current.InTestRoom.Description; p.LineName = ApplicationContext.Current.InProject.Description; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); }
private void ThreadMethod(object parameter) { ThreadParameter threadParameter = (ThreadParameter)parameter; for (int i = 0; i < threadParameter.IterationCount; i++) { List <BattleStep> result = BattleHelper.Instance.CalculateBattle2(threadParameter.Battle, threadParameter.BattleWaves, threadParameter.Random, null, null); lock (m_battles) { m_battles.Enqueue(result); } } m_events[threadParameter.Index].Set(); }
static void OffsetCheckThread(object input) { ThreadParameter parameter = (ThreadParameter)input; KafkaConsumer consumer = parameter.Consumer; string topic = parameter.Topic; log4net.ILog logger = parameter.Logger; while (true) { try { // read commited offset and producer offset var committedOffset = consumer.GetLastCommittedOffset(topic); var latestOffset = consumer.GetLatestDataOffset(topic); // display data var display = new StringBuilder(); display.AppendLine(string.Format("==================begin consumer info============================")); display.AppendLine(string.Format("{0, -15} {1,-15} {2,-15} {3,-15}", "partitionId", "commitedoffset", "dataoffset", "lag")); foreach (var committed in committedOffset) { if (latestOffset.ContainsKey(committed.Key)) { var latest = latestOffset[committed.Key]; var lag = latest - committed.Value; display.AppendLine(string.Format("{0, -15} {1,-15} {2,-15} {3,-15}", committed.Key, committed.Value, latest, lag < 0 ? "commited offset (" + committed.Value.ToString() + ") > latest offset (" + latest.ToString() + ")" : lag.ToString() )); } else { display.AppendLine(string.Format("{0, -15} {1,-15} {2,-15} {3,-15}", committed.Key, committed.Value, "unknown", "unknown")); } } display.AppendLine(string.Format("==================end consumer info============================")); logger.Debug(display.ToString()); } catch (Exception e) { logger.Debug("[user] => list consumer info failed\r\n" + e.Message); } Thread.Sleep(5 * 1000); } }
public void NotifyLeader(Guid dataID, List <CellChangedNotifyItem> items, string UserName, bool IsAdministrator, Guid requestID, string LineID, string TestRoomCode, string SegmentName, string CompanyName, string TestRoomName, string LineName) { ThreadParameter p = new ThreadParameter(); p.DataID = dataID; p.Items = items; p.IsAdministrator = IsAdministrator; p.UserName = UserName; p.RequestID = requestID; p.LineID = LineID; p.TestRoomCode = TestRoomCode; p.SegmentName = SegmentName; p.CompanyName = CompanyName; p.TestRoomName = TestRoomName; p.LineName = LineName; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); }
private void Thread_Start(object obj) { ThreadParameter parameter = (ThreadParameter)obj; DTE2 application = parameter.Application; CSqlOptions settings = parameter.CSqlOptions; OutputPaneTraceListener traceListener = null; try { var outputPane = Gui.Output.GetAndActivateOutputPane(application); if (outputPane != null) { outputPane.Clear(); traceListener = new OutputPaneTraceListener(outputPane); } if (traceListener != null) { Trace.Listeners.Add(traceListener); } this.currentExecutor = new ScriptExecutor(settings); this.currentExecutor.Execute(); if (!String.IsNullOrEmpty(settings.DistributionFile)) { application.ItemOperations.OpenFile(settings.DistributionFile, Constants.vsViewKindCode); } currentExecutor = null; } finally { currentExecutor = null; if (traceListener != null) { Trace.Listeners.Remove(traceListener); traceListener.Close(); traceListener.Dispose(); } } Commands2 commands = application.Commands as Commands2; if (commands != null) { commands.UpdateCommandUI(false); } }
/// <summary> /// 执行任务 /// </summary> public override void RunTask() { SearchItem[] result = null; try { ThreadParameter threadParameter = Searcher.DefaultThreadParameter; SubString simplifiedKey = threadParameter.SetSimplified(key, maxTextSize); if (simplifiedKey.Count != 0) { HashString cacheKey = simplifiedKey; result = resultCache.Get(ref cacheKey, null); if (result == null) { long wordCount = Searcher.Default.Results.WordCount; LeftArray <KeyValue <HashString, AutoCSer.Search.StaticSearcher <DataKey> .QueryResult> > results = threadParameter.Search(); switch (results.Count) { case 0: result = NullValue <SearchItem> .Array; break; case 1: threadParameter.ResultIndexArray.Empty(); results[0].Value.CopyTo(ref threadParameter.ResultIndexArray); result = threadParameter.ResultIndexArray.GetRangeSortDesc(value => getWeight(value.Key.Type, value.Value.Indexs.Length), 0, pageSize, value => new SearchItem(results[0].Key, value)); break; default: threadParameter.GetWeights(); result = threadParameter.GetWeightArray() .GetRangeSortDesc(weight => getWeight(weight.Key.Type, weight.Value), 0, pageSize, weight => new SearchItem(weight.Key)); break; } resultCache.Set(ref cacheKey, result); if (resultCache.Count > maxResultCount) { resultCache.Pop(); } } } } finally { onSearch.Callback(result ?? NullValue <SearchItem> .Array); } }
private void Execute(object paremeter) { ThreadParameter p = paremeter as ThreadParameter; DataSet dataset = p.Data; String modelIndex = p.ModelIndex; if (dataset == null) { return; } try { DataTable stadiumInfo = GetStadiumInfoByModelIndex(modelIndex); // 检查是否是设置龄期的模板 if (stadiumInfo != null && stadiumInfo.Rows.Count > 0) { StadiumConfig config = Newtonsoft.Json.JsonConvert.DeserializeObject <StadiumConfig>(stadiumInfo.Rows[0]["StadiumConfig"].ToString()); if (config != null) { DataTable tb = dataset.Tables["[biz_norm_extent_" + modelIndex + "]"]; if (tb != null && tb.Rows.Count > 0) { String dataID = tb.Rows[0]["ID"].ToString(); //DataTable stadiumData = GetStadiumDataByDataID(dataID); ////检查是否该资料已经进入龄期提醒表,不考虑龄期中是否已经完成;如果已经存在,需要考虑更新是否完成; //if (stadiumData == null || stadiumData.Rows.Count == 0) //{ // SaveStadiumData(dataset, config, modelIndex);//保存龄期 //} //else //{ // //如果数据已经存在于龄期表,检查制件日期是否变更,并根据配置更新是否完成的字段 // UpdateStadiumData(dataset, config, modelIndex, stadiumData); //} } } } } catch (Exception ex) { logger.Error("龄期提醒:error" + ex.Message); } }
public void SendSMS(String DataIndex, String invalidItem, string LineID, string TestRoomCode, string SegmentName, string CompanyName, string TestRoomName, string LineName) { if (StartSMS()) { ThreadParameter p = new ThreadParameter(); p.DataIndex = DataIndex; p.InvalidItem = invalidItem; p.LineID = LineID; p.TestRoomCode = TestRoomCode; p.SegmentName = SegmentName; p.CompanyName = CompanyName; p.TestRoomName = TestRoomName; p.LineName = LineName; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); } else { logger.Error("短信服务已关闭"); } }
private void Execute(object paremeter) { ThreadParameter p = paremeter as ThreadParameter; if (p.documentID == null || p.fpSpread == null) { return; } try { String path = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~"), "source/" + p.docDateDir); JZCommonHelper.SaveToExcel(p.documentID, p.fpSpread, path); JZCommonHelper.FarpointToImage(p.documentID, p.fpSpread, path); String excelPath = Path.Combine(path, p.documentID.ToString() + ".xls"); String pdfFilePath = Path.Combine(path, p.documentID.ToString() + ".pdf"); JZCommonHelper.FarpointToPDF(p.fpSpread, pdfFilePath, p.reportIndex); } catch (Exception ex) { logger.Error("create ralation files:" + ex.Message); } }
/// <summary> /// Get parameters from string. /// </summary> /// <param name="args">Parameters from console</param> /// <returns>Collection of parameters</returns> public static List <Parameter> GetParameters(string[] args) { if (!VerifyArgumentString(args)) { throw new ArgumentException("Wrong parameters"); } var parameters = new List <Parameter>(); for (var i = 0; i < args.Length; i++) { Parameter parameter = null; if (args[i] == "-n") { parameter = new ThreadParameter(args[i], args[i + 1]); } else if (args[i] == "-l") { parameter = new SpeedParameter(args[i], args[i + 1]); } else if (args[i] == "-f") { parameter = new FilePathParameter(args[i], args[i + 1]); } else if (args[i] == "-o") { parameter = new OutputPathParameter(args[i], args[i + 1]); } if (parameter != null && parameter.Verify()) { parameters.Add(parameter); } } return(parameters); }
public void SaveEditLog(JZDocument oldDoc, JZDocument newDoc, String optType, Boolean relationRequestChange, Sys_Document docBase) { ThreadParameter p = new ThreadParameter(); p.OldDoc = oldDoc; p.NewDoc = newDoc; ApplicationContext context = ApplicationContext.Current; p.UserName = context.UserName; p.IsAdministrator = context.IsAdministrator; p.OptType = optType; p.RelationRequestChange = relationRequestChange; p.DocBase = docBase; p.LineID = ApplicationContext.Current.InProject.Index; p.TestRoomCode = ApplicationContext.Current.InTestRoom.Code; p.SegmentName = ApplicationContext.Current.InSegment.Description; p.CompanyName = ApplicationContext.Current.InCompany.Description; p.TestRoomName = ApplicationContext.Current.InTestRoom.Description; p.LineName = ApplicationContext.Current.InProject.Description; ThreadPool.QueueUserWorkItem(new WaitCallback(Execute), p); }
internal static void ReplicateDir(object obj) { var tp = (ThreadParameter)obj; var rootDir = tp.Info; var stopWatch = new Stopwatch(); stopWatch.Start(); var nodeRoot = tp.Tree.FindByPath(tp.RootPath); stopWatch.Stop(); Interlocked.Add(ref tp.TicksElapsed[tp.Id], stopWatch.ElapsedMilliseconds); DirectoryInfo[] dirs = rootDir.GetDirectories("*", SearchOption.AllDirectories); foreach (DirectoryInfo dir in dirs) { var newTp = new ThreadParameter { Info = dir, RootPath = tp.RootPath + TreeNode.PathSeparator + dir.Name, Tree = tp.Tree, TicksElapsed = tp.TicksElapsed, Id = tp.Id }; stopWatch.Restart(); nodeRoot.AddChild(tp.Tree.NewTreeNode(dir.Name, String.Empty)); stopWatch.Stop(); Interlocked.Increment(ref _counter); FileInfo[] files = dir.GetFiles("*.*", SearchOption.TopDirectoryOnly); stopWatch.Start(); foreach (var file in files) { nodeRoot.AddChild(tp.Tree.NewTreeNode(file.Name, "fileContent")); Interlocked.Increment(ref _counter); } stopWatch.Stop(); Interlocked.Add(ref tp.TicksElapsed[tp.Id], stopWatch.ElapsedTicks); ReplicateDir(newTp); } if (tp.Threads != null) { tp.Threads[tp.Id] = null; } }
private void btnUploadAllOne_Click(object sender, EventArgs e) { Boolean flag = true; Int32 totalNumber = int.Parse(cb_total.SelectedItem.ToString()); Guid documentID = Guid.Empty; Guid stadiumID = Guid.Empty; Guid moduleID = Guid.Empty; String wtbh = tb_wtbh.Text; String testRoomCode = "0001000100010001";// Yqun.Common.ContextCache.ApplicationContext.Current.InTestRoom.Code; #region if (rb_statum.Checked) { if (list_Statum.SelectedItem != null) { wtbh = list_Statum.SelectedItem.ToString(); } else { MessageBox.Show("未选择龄期"); return; } if (dt != null && dt.Rows.Count > 0) { DataRow[] rows = dt.Select("委托编号='" + wtbh + "'"); if (rows.Length > 0) { documentID = new Guid(rows[0]["DataID"].ToString()); stadiumID = new Guid(rows[0]["ID"].ToString()); moduleID = new Guid(rows[0]["ModuleID"].ToString()); } else { MessageBox.Show("未按委托编号找到龄期"); return; } } else { MessageBox.Show("没有龄期数据"); return; } } else { moduleID = moduleList[cb_module.SelectedItem.ToString()]; } #endregion String machineCode = testRoomCode + "0001"; String realTimeData = ""; for (int i = 0; i < totalNumber; i++) { ThreadParameter p = new ThreadParameter(); p.currentNumber = i + 1; p.totalNumber = totalNumber; p.documentID = documentID; p.stadiumID = stadiumID; p.moduleID = moduleID; p.wtbh = wtbh; p.testRoomCode = testRoomCode; p.machineCode = machineCode; p.realTimeData = realTimeData; ThreadPool.QueueUserWorkItem(new WaitCallback(StartUpload), p); //flag = UploadTestData(i + 1); } MessageBox.Show(flag.ToString()); }
private void btn_sent_Click(object sender, EventArgs e) { try { Boolean flag = true; Int32 currentNumber = int.Parse(cb_items.SelectedItem.ToString()); Guid documentID = Guid.Empty; Guid stadiumID = Guid.Empty; Guid moduleID = Guid.Empty; String wtbh = tb_wtbh.Text; String testRoomCode = "0001000400010001";// Yqun.Common.ContextCache.ApplicationContext.Current.InTestRoom.Code; #region if (rb_statum.Checked) { if (list_Statum.SelectedItem != null) { wtbh = list_Statum.SelectedItem.ToString(); } else { MessageBox.Show("未选择龄期"); return; } if (dt != null && dt.Rows.Count > 0) { DataRow[] rows = dt.Select("委托编号='" + wtbh + "'"); if (rows.Length > 0) { documentID = new Guid(rows[0]["DataID"].ToString()); stadiumID = new Guid(rows[0]["ID"].ToString()); moduleID = new Guid(rows[0]["ModuleID"].ToString()); } else { MessageBox.Show("未按委托编号找到龄期"); return; } } else { MessageBox.Show("没有龄期数据"); return; } } else { moduleID = moduleList[cb_module.SelectedItem.ToString()]; } #endregion Int32 totalNumber = int.Parse(cb_total.SelectedItem.ToString()); String machineCode = testRoomCode + "0001"; String realTimeData = ""; ThreadParameter p = new ThreadParameter(); p.currentNumber = currentNumber; p.totalNumber = totalNumber; p.documentID = documentID; p.stadiumID = stadiumID; p.moduleID = moduleID; p.wtbh = wtbh; p.testRoomCode = testRoomCode; p.machineCode = machineCode; p.realTimeData = realTimeData; flag = UploadTestData(p.currentNumber, p.totalNumber, p.documentID, p.stadiumID, p.moduleID, p.wtbh, p.testRoomCode, p.machineCode, p.realTimeData); MessageBox.Show(flag.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void StartUpload(object paremeter) { ThreadParameter p = paremeter as ThreadParameter; UploadTestData(p.currentNumber, p.totalNumber, p.documentID, p.stadiumID, p.moduleID, p.wtbh, p.testRoomCode, p.machineCode, p.realTimeData); }
private ThreadResult CleanVisibleModelsList(ThreadParameter parameter) { List<ModelController> visibleModels = parameter.Argument<List<ModelController>>(0); if (visibleModels != null) { visibleModels.Clear(); } return null; }