private void datasetBindToDataGrid() { Trace.WriteLine("FResultsView.datasetBindToDataGrid() " + "started on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); try { Trace.WriteLine("datasetResults1.Results contains columns:"); foreach (DataColumn col in this.datasetResults1.Results.Columns) { Trace.WriteLine("Name: \"" + col.ColumnName + "\", " + "Type: \"" + col.DataType.ToString() + "\""); } this.dataGrid1.SetDataBinding(this.datasetResults1, "Results"); this.datasetResults1 = null; } catch (Exception exc) { Trace.WriteLine("FResultsView.datasetBindToDataGrid " + "Exception:\r\n" + exc.ToString()); } finally { Trace.WriteLine("FResultsView.datasetBindToDataGrid() " + "ended."); } }
private void datasetBindToDataGrid() { Trace.WriteLine("FResultsView.datasetBindToDataGrid() " + "started on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); try { Trace.WriteLine("datasetResults1.Results contains columns:"); foreach(DataColumn col in this.datasetResults1.Results.Columns) { Trace.WriteLine("Name: \"" + col.ColumnName + "\", " + "Type: \"" + col.DataType.ToString() + "\""); } this.dataGrid1.SetDataBinding(this.datasetResults1, "Results"); this.datasetResults1 = null; } catch(Exception exc) { Trace.WriteLine("FResultsView.datasetBindToDataGrid " + "Exception:\r\n" + exc.ToString()); } finally { Trace.WriteLine("FResultsView.datasetBindToDataGrid() " + "ended."); } }
private void updateDatasetwithThread() { try { Trace.WriteLine("FResultsView.populateDatasetwithThread() " + "started on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); if (populateDatasetwithThreadsCount > 0) { Trace.WriteLine("FResultsView.populateDatasetwithThread() " + " already has threads waiting"); return; } Interlocked.Increment(ref populateDatasetwithThreadsCount); Trace.WriteLine("FResultsView.populateDatasetwithThread() locking \"" + "lockObject\" on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); lock (lockObject) { Trace.WriteLine("FResultsView.populateDatasetwithThread() locked \"" + "lockObject\" on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); Thread.Sleep(100); DateTime start = DateTime.Now; if (CommonCode.GetCompetitions().Length == 0) { return; } this.datasetResults1 = new DatasetResults(); this.datasetResults1.DataSetName = "DatasetResults"; this.datasetResults1.Locale = new System.Globalization.CultureInfo("sv"); Structs.ResultWeaponsClass wclass = getCurrentWeaponClass(); Structs.ShootersClass uclass = getCurrentShootersClass(); if (uclass == Structs.ShootersClass.Okänd) { return; } ResultsReturn[] results = CommonCode.ResultsGet(wclass, uclass, CommonCode.GetCompetitions()[0], false); datasetResults1 = new Allberg.Shooter.Windows.DatasetResults(); int i = 1; bool useNorwegian = CommonCode.GetCompetitions()[0].NorwegianCount; Hashtable clubs = new Hashtable(); foreach (ResultsReturn result in results) { DatasetResults.ResultsRow newRow = this.datasetResults1.Results.NewResultsRow(); newRow.Place = i; if (clubs.ContainsKey(result.ClubId)) { newRow.Club = (string)clubs[result.ClubId]; } else { string clubName = getClubName(result.ClubId); newRow.Club = clubName; clubs.Add(result.ClubId, clubName); } switch ((Structs.Medal)result.Medal) { case Structs.Medal.StandardSilver: newRow.Medal = "S"; break; case Structs.Medal.StardardBrons: newRow.Medal = "B"; break; default: newRow.Medal = ""; break; } newRow.Points = result.PointsTotal; newRow.ShooterName = result.ShooterName; switch (CommonCode.GetCompetitions()[0].Type) { case Structs.CompetitionTypeEnum.Field: { if (useNorwegian) { newRow.Hits = (result.HitsTotal + result.FigureHitsTotal).ToString(); newRow.HitsPerStation = ""; foreach (string str in result.HitsPerStnString.Split(';')) { if (str != "") { newRow.HitsPerStation += str + " "; } } newRow.HitsPerStation = newRow.HitsPerStation.TrimEnd(); } else { newRow.Hits = result.HitsTotal.ToString() + " / " + result.FigureHitsTotal.ToString(); newRow.HitsPerStation = result.HitsPerStnString.Replace(";", " "); } break; } case Structs.CompetitionTypeEnum.MagnumField: { newRow.Hits = result.HitsTotal.ToString() + " / " + result.FigureHitsTotal.ToString(); newRow.HitsPerStation = result.HitsPerStnString.Replace(";", " "); break; } case Structs.CompetitionTypeEnum.Precision: { newRow.Hits = result.HitsTotal.ToString(); newRow.HitsPerStation = result.HitsPerStnString.Replace(";", " "); break; } default: throw new ApplicationException("Unknown CompetitionType"); } if (result.FinalShootingPlace != 100) { newRow.HitsPerStation += " (" + result.FinalShootingPlace.ToString() + ")"; } this.datasetResults1.Results.AddResultsRow(newRow); i++; } if (this.InvokeRequired) { this.Invoke(DatasetBindToDataGrid); } else { DatasetBindToDataGrid(); } Trace.WriteLine("FResultsView.populateDatasetwithThread took " + (DateTime.Now - start).TotalMilliseconds.ToString() + " ms."); } Trace.WriteLine("FResultsView.populateDatasetwithThread() unlocking \"" + "lockObject\" on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); } finally { Interlocked.Decrement(ref populateDatasetwithThreadsCount); Trace.WriteLine("FResultsView.populateDatasetwithThread() ended"); } }
private void updateDatasetwithThread() { try { Trace.WriteLine("FResultsView.populateDatasetwithThread() " + "started on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); if (populateDatasetwithThreadsCount>0) { Trace.WriteLine("FResultsView.populateDatasetwithThread() " + " already has threads waiting"); return; } Interlocked.Increment(ref populateDatasetwithThreadsCount); Trace.WriteLine("FResultsView.populateDatasetwithThread() locking \"" + "lockObject\" on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); lock(lockObject) { Trace.WriteLine("FResultsView.populateDatasetwithThread() locked \"" + "lockObject\" on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); Thread.Sleep(100); DateTime start = DateTime.Now; if (CommonCode.GetCompetitions().Length == 0) return; this.datasetResults1 = new DatasetResults(); this.datasetResults1.DataSetName = "DatasetResults"; this.datasetResults1.Locale = new System.Globalization.CultureInfo("sv"); Structs.ResultWeaponsClass wclass = getCurrentWeaponClass(); Structs.ShootersClass uclass = getCurrentShootersClass(); if (uclass == Structs.ShootersClass.Okänd) return; ResultsReturn[] results = CommonCode.ResultsGet(wclass, uclass, CommonCode.GetCompetitions()[0], false); datasetResults1 = new Allberg.Shooter.Windows.DatasetResults(); int i = 1; bool useNorwegian = CommonCode.GetCompetitions()[0].NorwegianCount; Hashtable clubs = new Hashtable(); foreach(ResultsReturn result in results) { DatasetResults.ResultsRow newRow = this.datasetResults1.Results.NewResultsRow(); newRow.Place = i; if (clubs.ContainsKey(result.ClubId)) newRow.Club = (string)clubs[result.ClubId]; else { string clubName = getClubName(result.ClubId); newRow.Club = clubName; clubs.Add(result.ClubId, clubName); } switch((Structs.Medal)result.Medal) { case Structs.Medal.StandardSilver: newRow.Medal = "S"; break; case Structs.Medal.StardardBrons: newRow.Medal = "B"; break; default: newRow.Medal = ""; break; } newRow.Points = result.PointsTotal; newRow.ShooterName = result.ShooterName; switch(CommonCode.GetCompetitions()[0].Type) { case Structs.CompetitionTypeEnum.Field: { if (useNorwegian) { newRow.Hits = (result.HitsTotal + result.FigureHitsTotal).ToString(); newRow.HitsPerStation = ""; foreach(string str in result.HitsPerStnString.Split(';')) { if (str != "") { newRow.HitsPerStation += str + " "; } } newRow.HitsPerStation = newRow.HitsPerStation.TrimEnd(); } else { newRow.Hits = result.HitsTotal.ToString() + " / " + result.FigureHitsTotal.ToString(); newRow.HitsPerStation = result.HitsPerStnString.Replace(";", " "); } break; } case Structs.CompetitionTypeEnum.MagnumField: { newRow.Hits = result.HitsTotal.ToString() + " / " + result.FigureHitsTotal.ToString(); newRow.HitsPerStation = result.HitsPerStnString.Replace(";", " "); break; } case Structs.CompetitionTypeEnum.Precision: { newRow.Hits = result.HitsTotal.ToString(); newRow.HitsPerStation = result.HitsPerStnString.Replace(";", " "); break; } default: throw new ApplicationException("Unknown CompetitionType"); } if (result.FinalShootingPlace != 100) newRow.HitsPerStation += " (" + result.FinalShootingPlace.ToString() + ")"; this.datasetResults1.Results.AddResultsRow(newRow); i++; } if (this.InvokeRequired) this.Invoke(DatasetBindToDataGrid); else DatasetBindToDataGrid(); Trace.WriteLine("FResultsView.populateDatasetwithThread took " + (DateTime.Now - start).TotalMilliseconds.ToString() + " ms."); } Trace.WriteLine("FResultsView.populateDatasetwithThread() unlocking \"" + "lockObject\" on thread \"" + Thread.CurrentThread.Name + "\" ( " + Thread.CurrentThread.ManagedThreadId.ToString() + " )"); } finally { Interlocked.Decrement(ref populateDatasetwithThreadsCount); Trace.WriteLine("FResultsView.populateDatasetwithThread() ended"); } }