2025-03-28 09:49:56 +08:00

429 lines
27 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using SocketTransfer.SDK;
namespace WeChatPushTransfer
{
public partial class Sender : Form
{
protected string _OracleConnStr = ConfigurationManager.AppSettings["OracleConnStr"].ToString();
protected string _HostIP = ConfigurationManager.AppSettings["HostIP"].ToString();
protected string _HostPort = ConfigurationManager.AppSettings["HostPort"].ToString();
public Sender()
{
InitializeComponent();
}
private void Sender_Load(object sender, EventArgs e)
{
Assembly assembly = Assembly.LoadFrom("SocketTransfer.SDK.dll");
Type type = typeof(EndAccountReceive);
object _object = Activator.CreateInstance(type);
propertyGrid1.SelectedObject = _object;
string strIPAddress = string.Empty;
IPAddress[] arrIPAddresses = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName());
foreach (IPAddress _IPAddress in arrIPAddresses)
{
if (!_IPAddress.AddressFamily.Equals(AddressFamily.InterNetwork))
continue;
strIPAddress = _IPAddress.ToString();
break;
}
if (!string.IsNullOrEmpty(strIPAddress))
textBoxIP.Text = strIPAddress;
else
textBoxIP.Text = "127.0.0.1";
textBoxIP.Text = strIPAddress;
textBoxPort.Text = "6060";
timer1.Start();
//timer2.Start();
//timer3.Start();
timer99.Start();
//StartProcess();
}
#region -> AutoSend
private void AutoSend(WeChatPushReceive _WeChatPushReceive)
{
try
{
_WeChatPushReceive.ResetSize();
byte[] _buffer = _WeChatPushReceive.Source;
byte[] feedback;
feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]),
int.Parse(_HostPort.Split(',')[0])));
#if DEBUG
string dir = Application.StartupPath + "//Log";
string fil = dir + "//" + CommonHelper.GetSendType(_WeChatPushReceive.ReceiveType) + "Send" +
DateTime.Now.ToString("yyyyMMdd") + ".log";
if (!Directory.Exists(dir))
{
System.IO.Directory.CreateDirectory(dir);
}
FileStream FileStreamSend = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
StreamWriter StreamWriterSend = new StreamWriter(FileStreamSend, System.Text.Encoding.UTF8);
StreamWriterSend.BaseStream.Seek(0, SeekOrigin.End);
StreamWriterSend.WriteLine("{0}", _WeChatPushReceive.Encoding.GetString(_buffer).Trim('\0'));
StreamWriterSend.Flush();
StreamWriterSend.Close();
FileStreamSend.Close();
string dir2 = Application.StartupPath + "//Log";
string fil2 = dir2 + "//" + CommonHelper.GetSendType(_WeChatPushReceive.ReceiveType) + "Receive" +
DateTime.Now.ToString("yyyyMMdd") + ".log";
if (!Directory.Exists(dir2))
{
System.IO.Directory.CreateDirectory(dir2);
}
FileStream FileStreamReceive = new FileStream(fil2, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
StreamWriter StreamWriterReceive = new StreamWriter(FileStreamReceive, System.Text.Encoding.UTF8);
StreamWriterReceive.BaseStream.Seek(0, SeekOrigin.End);
StreamWriterReceive.WriteLine("{0}", _WeChatPushReceive.Encoding.GetString(feedback).Trim('\0'));
StreamWriterReceive.Flush();
StreamWriterReceive.Close();
FileStreamReceive.Close();
#endif
UpdateDatas(_WeChatPushReceive.ReceiveType, feedback);
}
catch (Exception ex)
{
//MessageBox.Show(ex.ToString());
if (!Directory.Exists(Application.StartupPath + "\\ErrorLog"))
{
System.IO.Directory.CreateDirectory(Application.StartupPath + "\\ErrorLog");
}
LogHelper.WriteSendLog(ex.Message, "ErrorLog\\日志_Send" + DateTime.Now.ToString("yyyyMMddHHmmss"));
}
}
#endregion
#region -> UpdateDatas
private void UpdateDatas(int ReceiveType, byte[] feedback)//EndAccountSend _EndAccountSend)
{
string SqlString = "";
try
{
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
switch (ReceiveType)
{
case 4:
WeChatPushDetailSend _WeChatPushDetailSend = new WeChatPushDetailSend(feedback);
propertyGrid2.SelectedObject = _WeChatPushDetailSend;
SqlString = "SELECT 1 FROM HIGHWAY_STORAGE.T_WECHATPUSHDETAIL WHERE PROVINCE_CODE = '" +
_WeChatPushDetailSend.PROVINCE_CODE + "' AND WECHATPUSHDETAIL_ID = " +
_WeChatPushDetailSend.WECHATPUSHDETAIL_ID;
try
{
if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_WECHATPUSHDETAIL").Tables[0].Rows.Count > 0)
{
SqlString = "UPDATE HIGHWAY_STORAGE.T_WECHATPUSHDETAIL SET TRANSFER_STATE = 9 WHERE PROVINCE_CODE = '" +
_WeChatPushDetailSend.PROVINCE_CODE + "' AND WECHATPUSHDETAIL_ID = " +
_WeChatPushDetailSend.WECHATPUSHDETAIL_ID;
_OracleHelper.ExcuteSql(SqlString);
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message, "日志_Receive(WECHATPUSHDETAIL_ID)_" +
_WeChatPushDetailSend.WECHATPUSHDETAIL_ID);
}
break;
case 5:
WeChatPushSaleSend _WeChatPushSaleSend = new WeChatPushSaleSend(feedback);
propertyGrid2.SelectedObject = _WeChatPushSaleSend;
SqlString = "SELECT 1 FROM HIGHWAY_STORAGE.T_WECHATPUSHSALES WHERE PROVINCE_CODE = '" +
_WeChatPushSaleSend.PROVINCE_CODE + "' AND WECHATPUSHSALES_ID = " +
_WeChatPushSaleSend.WECHATPUSHSALES_ID;
try
{
if (_OracleHelper.ExcuteSqlGetDataSet(SqlString, "T_WECHATPUSHSALES").Tables[0].Rows.Count > 0)
{
SqlString = "UPDATE HIGHWAY_STORAGE.T_WECHATPUSHSALES SET TRANSFER_STATE = 9 WHERE PROVINCE_CODE = '" +
_WeChatPushSaleSend.PROVINCE_CODE + "' AND WECHATPUSHSALES_ID = " +
_WeChatPushSaleSend.WECHATPUSHSALES_ID;
_OracleHelper.ExcuteSql(SqlString);
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message, "日志_Receive(WECHATPUSHSALES_ID)_" +
_WeChatPushSaleSend.WECHATPUSHSALES_ID);
}
break;
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog(ex.Message);
}
}
#endregion
#region -> StartProcess
protected void StartProcess(object _object = null)
{
try
{
string SQLString = null;
OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0],
_OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]);
if (_object == null)
{
#region
SQLString = "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE";
try
{
foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(SQLString, "T_TRANSFERTOOL").Tables[0].Rows)
{
TransferTool _TransferTool = new TransferTool();
_TransferTool.SERVERPARTCODE = _DataRow["SERVERPARTCODE"].ToString();
_TransferTool.SERVERPART_NAME = _DataRow["SERVERPART_NAME"].ToString();
_TransferTool.TRANSFERTOOL_DATE = DateTime.Now.ToString();
_TransferTool.TRANSFER_ID = 99;
_TransferTool.ReceiveType = 99;
byte[] _buffer = _TransferTool.Source;
byte[] feedback;
feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]),
int.Parse(_HostPort.Split(',')[0])));
}
}
catch { }
#endregion
}
else
{
switch (_object.ToString())
{
case "4":
#region
try
{
_OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_STORAGE.T_WECHATPUSHDETAIL SET TRANSFER_STATE = 1
WHERE NVL(TRANSFER_STATE,0) = 0 AND PROVINCE_CODE IS NOT NULL AND WECHATPUSHDETAIL_ID IS NOT NULL");
foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT * FROM HIGHWAY_STORAGE.T_WECHATPUSHDETAIL WHERE TRANSFER_STATE = 1 AND ROWNUM <= 1",
"T_WECHATPUSHDETAIL").Tables[0].Rows)
{
try
{
if (string.IsNullOrEmpty(_DataRow["WECHATPUSHDETAIL_ID"].ToString()))
{
continue;
}
WeChatPushDetailReceive _WeChatPushDetailReceive = new WeChatPushDetailReceive();
_WeChatPushDetailReceive.ReceiveType = 4;
_WeChatPushDetailReceive.WECHATPUSHDETAIL_ID = int.Parse(_DataRow["WECHATPUSHDETAIL_ID"].ToString());
_WeChatPushDetailReceive.RTWECHATPUSH_ID = string.IsNullOrEmpty(_DataRow["RTWECHATPUSH_ID"].ToString()) ?
0 : int.Parse(_DataRow["RTWECHATPUSH_ID"].ToString());
_WeChatPushDetailReceive.DIRECTION_IDS = _DataRow["DIRECTION_IDS"].ToString();
_WeChatPushDetailReceive.GROUP_TYPE = string.IsNullOrEmpty(_DataRow["GROUP_TYPE"].ToString()) ?
0 : int.Parse(_DataRow["GROUP_TYPE"].ToString());
_WeChatPushDetailReceive.USER_NAME = _DataRow["USER_NAME"].ToString();
_WeChatPushDetailReceive.STATISTICS_DATE = _DataRow["STATISTICS_DATE"].ToString();
_WeChatPushDetailReceive.CURRENT_TOTALPRICE = string.IsNullOrEmpty(_DataRow["CURRENT_TOTALPRICE"].ToString()) ?
0 : double.Parse(_DataRow["CURRENT_TOTALPRICE"].ToString());
_WeChatPushDetailReceive.CASHPAY = string.IsNullOrEmpty(_DataRow["CASHPAY"].ToString()) ?
0 : double.Parse(_DataRow["CASHPAY"].ToString());
_WeChatPushDetailReceive.DIFFERENT_PRICE_MORE = string.IsNullOrEmpty(_DataRow["DIFFERENT_PRICE_MORE"].ToString()) ?
0 : double.Parse(_DataRow["DIFFERENT_PRICE_MORE"].ToString());
_WeChatPushDetailReceive.DIFFERENT_PRICE_LESS = string.IsNullOrEmpty(_DataRow["DIFFERENT_PRICE_LESS"].ToString()) ?
0 : double.Parse(_DataRow["DIFFERENT_PRICE_LESS"].ToString());
_WeChatPushDetailReceive.TICKETCOUNT = string.IsNullOrEmpty(_DataRow["TICKETCOUNT"].ToString()) ?
0 : double.Parse(_DataRow["TICKETCOUNT"].ToString());
_WeChatPushDetailReceive.TOTALOFFAMOUNT = string.IsNullOrEmpty(_DataRow["TOTALOFFAMOUNT"].ToString()) ?
0 : double.Parse(_DataRow["TOTALOFFAMOUNT"].ToString());
_WeChatPushDetailReceive.MOBILEPAYMENT = string.IsNullOrEmpty(_DataRow["MOBILEPAYMENT"].ToString()) ?
0 : double.Parse(_DataRow["MOBILEPAYMENT"].ToString());
_WeChatPushDetailReceive.PASS_COUNT = string.IsNullOrEmpty(_DataRow["PASS_COUNT"].ToString()) ?
0 : double.Parse(_DataRow["PASS_COUNT"].ToString());
_WeChatPushDetailReceive.COMMODITY_COUNT = string.IsNullOrEmpty(_DataRow["COMMODITY_COUNT"].ToString()) ?
0 : double.Parse(_DataRow["COMMODITY_COUNT"].ToString());
_WeChatPushDetailReceive.TOTAL_COUNT = string.IsNullOrEmpty(_DataRow["TOTAL_COUNT"].ToString()) ?
0 : double.Parse(_DataRow["TOTAL_COUNT"].ToString());
_WeChatPushDetailReceive.HOLIDAY_REVENUE = string.IsNullOrEmpty(_DataRow["HOLIDAY_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["HOLIDAY_REVENUE"].ToString());
_WeChatPushDetailReceive.HOLIDAY_TICKETCOUNT = string.IsNullOrEmpty(_DataRow["HOLIDAY_TICKETCOUNT"].ToString()) ?
0 : double.Parse(_DataRow["HOLIDAY_TICKETCOUNT"].ToString());
_WeChatPushDetailReceive.HOLIDAY_TOTALCOUNT = string.IsNullOrEmpty(_DataRow["HOLIDAY_TOTALCOUNT"].ToString()) ?
0 : double.Parse(_DataRow["HOLIDAY_TOTALCOUNT"].ToString());
_WeChatPushDetailReceive.HOLIDAY_DAYS = string.IsNullOrEmpty(_DataRow["HOLIDAY_DAYS"].ToString()) ?
0 : double.Parse(_DataRow["HOLIDAY_DAYS"].ToString());
_WeChatPushDetailReceive.PROMOTION_REVENUES = _DataRow["PROMOTION_REVENUES"].ToString();
_WeChatPushDetailReceive.WEEK_REVENUE = string.IsNullOrEmpty(_DataRow["WEEK_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["WEEK_REVENUE"].ToString());
_WeChatPushDetailReceive.WEEK_AVERAGEPRICE = string.IsNullOrEmpty(_DataRow["WEEK_AVERAGEPRICE"].ToString()) ?
0 : double.Parse(_DataRow["WEEK_AVERAGEPRICE"].ToString());
_WeChatPushDetailReceive.WEEK_YEARONYEAR = string.IsNullOrEmpty(_DataRow["WEEK_YEARONYEAR"].ToString()) ?
0 : double.Parse(_DataRow["WEEK_YEARONYEAR"].ToString());
_WeChatPushDetailReceive.MONTH_REVENUE = string.IsNullOrEmpty(_DataRow["MONTH_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["MONTH_REVENUE"].ToString());
_WeChatPushDetailReceive.MONTH_AVERAGEPRICE = string.IsNullOrEmpty(_DataRow["MONTH_AVERAGEPRICE"].ToString()) ?
0 : double.Parse(_DataRow["MONTH_AVERAGEPRICE"].ToString());
_WeChatPushDetailReceive.MONTH_YEARONYEAR = string.IsNullOrEmpty(_DataRow["MONTH_YEARONYEAR"].ToString()) ?
0 : double.Parse(_DataRow["MONTH_YEARONYEAR"].ToString());
_WeChatPushDetailReceive.YEAR_REVENUE = string.IsNullOrEmpty(_DataRow["YEAR_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["YEAR_REVENUE"].ToString());
_WeChatPushDetailReceive.YEAR_AVERAGEPRICE = string.IsNullOrEmpty(_DataRow["YEAR_AVERAGEPRICE"].ToString()) ?
0 : double.Parse(_DataRow["YEAR_AVERAGEPRICE"].ToString());
_WeChatPushDetailReceive.YEAR_YEARONYEAR = string.IsNullOrEmpty(_DataRow["YEAR_YEARONYEAR"].ToString()) ?
0 : double.Parse(_DataRow["YEAR_YEARONYEAR"].ToString());
_WeChatPushDetailReceive.YEAR_TOTALPRICE = string.IsNullOrEmpty(_DataRow["YEAR_TOTALPRICE"].ToString()) ?
0 : double.Parse(_DataRow["YEAR_TOTALPRICE"].ToString());
_WeChatPushDetailReceive.MARKET_REVENUE = string.IsNullOrEmpty(_DataRow["MARKET_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["MARKET_REVENUE"].ToString());
_WeChatPushDetailReceive.RESTAURANT_REVENUE = string.IsNullOrEmpty(_DataRow["RESTAURANT_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["RESTAURANT_REVENUE"].ToString());
_WeChatPushDetailReceive.SNACK_REVENUE = string.IsNullOrEmpty(_DataRow["SNACK_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["SNACK_REVENUE"].ToString());
_WeChatPushDetailReceive.OTHER_REVENUE = string.IsNullOrEmpty(_DataRow["OTHER_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["OTHER_REVENUE"].ToString());
_WeChatPushDetailReceive.COMPREHENSIVE_REVENUE = string.IsNullOrEmpty(_DataRow["COMPREHENSIVE_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["COMPREHENSIVE_REVENUE"].ToString());
_WeChatPushDetailReceive.THEME_REVENUE = string.IsNullOrEmpty(_DataRow["THEME_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["THEME_REVENUE"].ToString());
_WeChatPushDetailReceive.STANDARD_REVENUE = string.IsNullOrEmpty(_DataRow["STANDARD_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["STANDARD_REVENUE"].ToString());
_WeChatPushDetailReceive.PAKINGZONE_REVENUE = string.IsNullOrEmpty(_DataRow["PAKINGZONE_REVENUE"].ToString()) ?
0 : double.Parse(_DataRow["PAKINGZONE_REVENUE"].ToString());
_WeChatPushDetailReceive.SERVERPART_REVENUE = _DataRow["SERVERPART_REVENUE"].ToString();
_WeChatPushDetailReceive.PROVINCE_CODE = _DataRow["PROVINCE_CODE"].ToString();
_WeChatPushDetailReceive.WECHATPUSHDETAIL_DESC = _DataRow["WECHATPUSHDETAIL_DESC"].ToString();
AutoSend(_WeChatPushDetailReceive);
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message, "日志_Send(WECHATPUSHDETAIL_ID)_" +
_DataRow["WECHATPUSHDETAIL_ID"].ToString());
}
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message);
}
#endregion
break;
case "5":
#region
try
{
_OracleHelper.ExcuteSql(@"UPDATE HIGHWAY_STORAGE.T_WECHATPUSHSALES SET TRANSFER_STATE = 1
WHERE NVL(TRANSFER_STATE,0) = 0 AND PROVINCE_CODE IS NOT NULL AND WECHATPUSHSALES_ID IS NOT NULL");
//SELLDATA_DATE > SYSDATE - 1/24 AND
foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(
@"SELECT * FROM HIGHWAY_STORAGE.T_WECHATPUSHSALES WHERE TRANSFER_STATE = 1 AND ROWNUM <= 1",
"T_WECHATPUSHSALES").Tables[0].Rows)
{
try
{
if (string.IsNullOrEmpty(_DataRow["WECHATPUSHSALES_ID"].ToString()))
{
continue;
}
WeChatPushSaleReceive _WeChatPushSaleReceive = new WeChatPushSaleReceive();
_WeChatPushSaleReceive.ReceiveType = 5;
_WeChatPushSaleReceive.WECHATPUSHSALES_ID = int.Parse(_DataRow["WECHATPUSHSALES_ID"].ToString());
_WeChatPushSaleReceive.WECHATPUSHDETAIL_ID = int.Parse(_DataRow["WECHATPUSHDETAIL_ID"].ToString());
_WeChatPushSaleReceive.GROUP_TYPE = int.Parse(_DataRow["GROUP_TYPE"].ToString());
_WeChatPushSaleReceive.DATA_TYPE = int.Parse(_DataRow["DATA_TYPE"].ToString());
_WeChatPushSaleReceive.FIRST_RANK = _DataRow["FIRST_RANK"].ToString();
_WeChatPushSaleReceive.SECOND_RANK = _DataRow["SECOND_RANK"].ToString();
_WeChatPushSaleReceive.THIRD_RANK = _DataRow["THIRD_RANK"].ToString();
_WeChatPushSaleReceive.FOURTH_RANK = _DataRow["FOURTH_RANK"].ToString();
_WeChatPushSaleReceive.FIFTH_RANK = _DataRow["FIFTH_RANK"].ToString();
_WeChatPushSaleReceive.SIXTH_RANK = _DataRow["SIXTH_RANK"].ToString();
_WeChatPushSaleReceive.SEVENTH_RANK = _DataRow["SEVENTH_RANK"].ToString();
_WeChatPushSaleReceive.EIGHTH_RANK = _DataRow["EIGHTH_RANK"].ToString();
_WeChatPushSaleReceive.NINTH_RANK = _DataRow["NINTH_RANK"].ToString();
_WeChatPushSaleReceive.TENTH_RANK = _DataRow["TENTH_RANK"].ToString();
_WeChatPushSaleReceive.PROVINCE_CODE = _DataRow["PROVINCE_CODE"].ToString();
_WeChatPushSaleReceive.WECHATPUSHSALES_DESC = _DataRow["WECHATPUSHSALES_DESC"].ToString();
AutoSend(_WeChatPushSaleReceive);
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message, "日志_Send(WECHATPUSHSALES_ID)_" +
_DataRow["WECHATPUSHSALES_ID"].ToString());
}
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message);
}
#endregion
break;
default:
#region
SQLString = "SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE ORDER BY SERVERPARTCODE";
try
{
foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(SQLString, "T_TRANSFERTOOL").Tables[0].Rows)
{
TransferTool _TransferTool = new TransferTool();
_TransferTool.SERVERPARTCODE = _DataRow["SERVERPARTCODE"].ToString();
_TransferTool.SERVERPART_NAME = _DataRow["SERVERPART_NAME"].ToString();
_TransferTool.TRANSFERTOOL_DATE = DateTime.Now.ToString();
_TransferTool.TRANSFER_ID = 99;
_TransferTool.ReceiveType = 99;
byte[] _buffer = _TransferTool.Source;
byte[] feedback;
feedback = socketor1.Send(_buffer, new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]),
int.Parse(_HostPort.Split(',')[0])));
}
}
catch { }
#endregion
break;
}
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog(ex.Message);
}
}
#endregion
#region 线1 -> timer1_Tick
private void timer1_Tick(object sender, EventArgs e)
{
//Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess(0))));
//_Thread.Start();
StartProcess(4);
StartProcess(5);
}
#endregion
#region 线 ->
private void timer99_Tick(object sender, EventArgs e)
{
Thread _Thread = new Thread(new ThreadStart(new ThreadStart(() => StartProcess())));
_Thread.Start();
}
#endregion
}
}