/// <summary> /// 写入数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Value"></param> /// <param name="Start"></param> public void Write <T>(T Value, int Start) { WriteInvoke wi = new WriteInvoke(Value, Start, typeof(T)); if (this.clearMostCode && write.Count >= clearMaxCount) { write.Clear(); } write.Enqueue(wi); }
/// <summary> /// 写入数据 /// </summary> /// <param name="Value"></param> public void Write <T>(List <T> Value, Dictionary <string, string> Parm) { List <object> tmpValue = new List <object>(); for (int i = 0; i < Value.Count; i++) { tmpValue.Add((object)(Value[i])); } WriteInvoke wi = new WriteInvoke(tmpValue, Parm, typeof(T)); if (this.clearMostCode && write.Count >= clearMaxCount) { write.Clear(); } write.Enqueue(wi); }
/// <summary> /// 写入数据 /// </summary> /// <typeparam name="T">数据类型</typeparam> /// <param name="Value">写入值</param> /// <param name="Start">写入起点</param> /// <param name="Len">写入长度</param> public void Write <T>(List <T> Value, int Start, int End) { List <object> tmpValue = new List <object>(); for (int i = 0; i < Value.Count; i++) { tmpValue.Add((object)(Value[i])); } WriteInvoke wi = new WriteInvoke(tmpValue, Start, End, typeof(T)); if (this.clearMostCode && write.Count >= clearMaxCount) { write.Clear(); } write.Enqueue(wi); }
/// <summary> /// 将异步传输过来的数据写入操作,在多线程中一个一个的同步执行 /// </summary> public void WriteOneByOne() { while (write.Count > 0) { if (write.Count > 40) { All.Class.Error.Add(new string[] { "写入模块", "队列长度" }, new string[] { this.Text, write.Count.ToString() }); All.Class.Error.Add("当前队列过长,影响写入实时性,请检查程序"); } WriteInvoke wi = write.Dequeue(); if (wi == null) { return; } if (wi.OtherValue != null) { if (wi.OtherValue.T.ToString() == typeof(bool).ToString()) { List <bool> tmpValue = new List <bool>(); for (int i = 0; i < wi.OtherValue.Value.Count; i++) { tmpValue.Add((bool)wi.OtherValue.Value[i]); } if (!WriteInternal <bool>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <bool>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <bool>(tmpValue, wi.OtherValue.Parm)) { All.Class.Log.Add <bool>(tmpValue, wi.OtherValue.Parm); } } } } if (wi.OtherValue.T.ToString() == typeof(string).ToString()) { List <string> tmpValue = new List <string>(); for (int i = 0; i < wi.OtherValue.Value.Count; i++) { tmpValue.Add((string)wi.OtherValue.Value[i]); } if (!WriteInternal <string>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <string>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <string>(tmpValue, wi.OtherValue.Parm)) { All.Class.Log.Add <string>(tmpValue, wi.OtherValue.Parm); } } } } if (wi.OtherValue.T.ToString() == typeof(byte).ToString()) { List <byte> tmpValue = new List <byte>(); for (int i = 0; i < wi.OtherValue.Value.Count; i++) { tmpValue.Add((byte)wi.OtherValue.Value[i]); } if (!WriteInternal <byte>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <byte>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <byte>(tmpValue, wi.OtherValue.Parm)) { All.Class.Log.Add <byte>(tmpValue, wi.OtherValue.Parm); } } } } if (wi.OtherValue.T.ToString() == typeof(float).ToString()) { List <float> tmpValue = new List <float>(); for (int i = 0; i < wi.OtherValue.Value.Count; i++) { tmpValue.Add((float)wi.OtherValue.Value[i]); } if (!WriteInternal <float>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <float>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <float>(tmpValue, wi.OtherValue.Parm)) { All.Class.Log.Add <float>(tmpValue, wi.OtherValue.Parm); } } } } if (wi.OtherValue.T.ToString() == typeof(double).ToString()) { List <double> tmpValue = new List <double>(); for (int i = 0; i < wi.OtherValue.Value.Count; i++) { tmpValue.Add((double)wi.OtherValue.Value[i]); } if (!WriteInternal <double>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <double>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <double>(tmpValue, wi.OtherValue.Parm)) { All.Class.Log.Add <double>(tmpValue, wi.OtherValue.Parm); } } } } if (wi.OtherValue.T.ToString() == typeof(int).ToString()) { List <int> tmpValue = new List <int>(); for (int i = 0; i < wi.OtherValue.Value.Count; i++) { tmpValue.Add((int)wi.OtherValue.Value[i]); } if (!WriteInternal <int>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <int>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <int>(tmpValue, wi.OtherValue.Parm)) { All.Class.Log.Add <int>(tmpValue, wi.OtherValue.Parm); } } } } if (wi.OtherValue.T.ToString() == typeof(ushort).ToString()) { List <ushort> tmpValue = new List <ushort>(); for (int i = 0; i < wi.OtherValue.Value.Count; i++) { tmpValue.Add((ushort)wi.OtherValue.Value[i]); } if (!WriteInternal <ushort>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <ushort>(tmpValue, wi.OtherValue.Parm)) { if (!WriteInternal <ushort>(tmpValue, wi.OtherValue.Parm)) { All.Class.Log.Add <ushort>(tmpValue, wi.OtherValue.Parm); } } } } } if (wi.ListValue != null) { if (wi.ListValue.T.ToString() == typeof(bool).ToString()) { List <bool> tmpValue = new List <bool>(); for (int i = 0; i < wi.ListValue.Value.Count; i++) { tmpValue.Add((bool)wi.ListValue.Value[i]); } if (!WriteInternal <bool>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <bool>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <bool>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { All.Class.Log.Add <bool>(tmpValue, wi.ListValue.Start, wi.ListValue.End); } } } } if (wi.ListValue.T.ToString() == typeof(string).ToString()) { List <string> tmpValue = new List <string>(); for (int i = 0; i < wi.ListValue.Value.Count; i++) { tmpValue.Add((string)wi.ListValue.Value[i]); } if (!WriteInternal <string>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <string>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <string>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { All.Class.Log.Add <string>(tmpValue, wi.ListValue.Start, wi.ListValue.End); } } } } if (wi.ListValue.T.ToString() == typeof(byte).ToString()) { List <byte> tmpValue = new List <byte>(); for (int i = 0; i < wi.ListValue.Value.Count; i++) { tmpValue.Add((byte)wi.ListValue.Value[i]); } if (!WriteInternal <byte>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <byte>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <byte>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { All.Class.Log.Add <byte>(tmpValue, wi.ListValue.Start, wi.ListValue.End); } } } } if (wi.ListValue.T.ToString() == typeof(float).ToString()) { List <float> tmpValue = new List <float>(); for (int i = 0; i < wi.ListValue.Value.Count; i++) { tmpValue.Add((float)wi.ListValue.Value[i]); } if (!WriteInternal <float>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <float>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <float>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { All.Class.Log.Add <float>(tmpValue, wi.ListValue.Start, wi.ListValue.End); } } } } if (wi.ListValue.T.ToString() == typeof(double).ToString()) { List <double> tmpValue = new List <double>(); for (int i = 0; i < wi.ListValue.Value.Count; i++) { tmpValue.Add((double)wi.ListValue.Value[i]); } if (!WriteInternal <double>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <double>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <double>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { All.Class.Log.Add <double>(tmpValue, wi.ListValue.Start, wi.ListValue.End); } } } } if (wi.ListValue.T.ToString() == typeof(int).ToString()) { List <int> tmpValue = new List <int>(); for (int i = 0; i < wi.ListValue.Value.Count; i++) { tmpValue.Add((int)wi.ListValue.Value[i]); } if (!WriteInternal <int>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <int>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <int>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { All.Class.Log.Add <int>(tmpValue, wi.ListValue.Start, wi.ListValue.End); } } } } if (wi.ListValue.T.ToString() == typeof(ushort).ToString()) { List <ushort> tmpValue = new List <ushort>(); for (int i = 0; i < wi.ListValue.Value.Count; i++) { tmpValue.Add((ushort)wi.ListValue.Value[i]); } if (!WriteInternal <ushort>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <ushort>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { if (!WriteInternal <ushort>(tmpValue, wi.ListValue.Start, wi.ListValue.End)) { All.Class.Log.Add <ushort>(tmpValue, wi.ListValue.Start, wi.ListValue.End); } } } } } if (wi.PointValue != null) { if (wi.PointValue.T.ToString() == typeof(bool).ToString()) { if (!WriteInternal <bool>((bool)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <bool>((bool)wi.PointValue.Value, wi.PointValue.Start)) { All.Class.Log.Add <bool>((bool)wi.PointValue.Value, wi.PointValue.Start); } } } if (wi.PointValue.T.ToString() == typeof(string).ToString()) { if (!WriteInternal <string>((string)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <string>((string)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <string>((string)wi.PointValue.Value, wi.PointValue.Start)) { All.Class.Log.Add <string>((string)wi.PointValue.Value, wi.PointValue.Start); } } } } if (wi.PointValue.T.ToString() == typeof(byte).ToString()) { if (!WriteInternal <byte>((byte)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <byte>((byte)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <byte>((byte)wi.PointValue.Value, wi.PointValue.Start)) { All.Class.Log.Add <byte>((byte)wi.PointValue.Value, wi.PointValue.Start); } } } } if (wi.PointValue.T.ToString() == typeof(float).ToString()) { if (!WriteInternal <float>((float)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <float>((float)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <float>((float)wi.PointValue.Value, wi.PointValue.Start)) { All.Class.Log.Add <float>((float)wi.PointValue.Value, wi.PointValue.Start); } } } } if (wi.PointValue.T.ToString() == typeof(double).ToString()) { if (!WriteInternal <double>((double)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <double>((double)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <double>((double)wi.PointValue.Value, wi.PointValue.Start)) { All.Class.Log.Add <double>((double)wi.PointValue.Value, wi.PointValue.Start); } } } } if (wi.PointValue.T.ToString() == typeof(int).ToString()) { if (!WriteInternal <int>((int)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <int>((int)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <int>((int)wi.PointValue.Value, wi.PointValue.Start)) { All.Class.Log.Add <int>((int)wi.PointValue.Value, wi.PointValue.Start); } } } } if (wi.PointValue.T.ToString() == typeof(ushort).ToString()) { if (!WriteInternal <ushort>((ushort)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <ushort>((ushort)wi.PointValue.Value, wi.PointValue.Start)) { if (!WriteInternal <ushort>((ushort)wi.PointValue.Value, wi.PointValue.Start)) { All.Class.Log.Add <ushort>((ushort)wi.PointValue.Value, wi.PointValue.Start); } } } } } System.Threading.Thread.Sleep(10); } }