wzp
2021-07-30 afda40ef498cca59e58b2b6869deae90f3c13de5
增加HTTP测试工具
51个文件已添加
29个文件已修改
1518 ■■■■■ 已修改文件
CMPPHOST/CMPPHOST/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/BusinessFactory.dll 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/BusinessFactory.pdb 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/CMPP2.dll 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/CMPP2.pdb 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/CMPPHOST.exe 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/CMPPHOST.pdb 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/DBFactory.dll 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/bin/Debug/DBFactory.pdb 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/obj/Debug/CMPPHOST.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/obj/Debug/CMPPHOST.exe 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/obj/Debug/CMPPHOST.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Source/.vs/APPCMPP2/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
Source/BusinessFactory_Source/bin/Debug/BusinessFactory.dll 补丁 | 查看 | 原始文档 | blame | 历史
Source/BusinessFactory_Source/bin/Debug/BusinessFactory.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Source/BusinessFactory_Source/bin/Debug/DBFactory.dll 补丁 | 查看 | 原始文档 | blame | 历史
Source/BusinessFactory_Source/bin/Debug/DBFactory.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Source/BusinessFactory_Source/obj/Debug/BusinessFactory.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
Source/BusinessFactory_Source/obj/Debug/BusinessFactory.dll 补丁 | 查看 | 原始文档 | blame | 历史
Source/BusinessFactory_Source/obj/Debug/BusinessFactory.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Source/CMPP2_Source/bin/Debug/CMPP2.dll 补丁 | 查看 | 原始文档 | blame | 历史
Source/CMPP2_Source/bin/Debug/CMPP2.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Source/CMPP2_Source/obj/Debug/CMPP2.dll 补丁 | 查看 | 原始文档 | blame | 历史
Source/CMPP2_Source/obj/Debug/CMPP2.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Source/DBFactory_Source/bin/Debug/DBFactory.dll 补丁 | 查看 | 原始文档 | blame | 历史
Source/DBFactory_Source/bin/Debug/DBFactory.pdb 补丁 | 查看 | 原始文档 | blame | 历史
Source/DBFactory_Source/obj/Debug/DBFactory.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
Source/DBFactory_Source/obj/Debug/DBFactory.csproj.FileListAbsolute.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/DBFactory_Source/obj/Debug/DBFactory.dll 补丁 | 查看 | 原始文档 | blame | 历史
Source/DBFactory_Source/obj/Debug/DBFactory.pdb 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/db.lock 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/storage.ide-shm 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/storage.ide-wal 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/.vs/ThreadTestSMGW/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW.sln 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/App.config 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/DataSql.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/ListToDt.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/Program.cs 316 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/Properties/AssemblyInfo.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/SMSHandler.cs 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/SMSModel.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/StrToHex.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/ThreadTestSMGW.csproj 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/ThreadTestSMGW.csproj.user 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/ThreadTestSMGW_TemporaryKey.pfx 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/TornadoSMSHandler.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Data.dll 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/Microsoft.Practices.ObjectBuilder.dll 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.application 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.exe 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.exe.config 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.exe.manifest 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.pdb 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.application 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.exe 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.exe.config 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.exe.manifest 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/app.publish/ThreadTestSMGW.exe 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.exe 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.exe.config 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.pdb 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.vshost.exe 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.vshost.exe.config 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.vshost.exe.manifest 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.application 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.CoreCompileInputs.cache 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.FileListAbsolute.txt 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csprojResolveAssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.exe 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.exe.manifest 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.pdb 补丁 | 查看 | 原始文档 | blame | 历史
CMPPHOST/CMPPHOST/Program.cs
@@ -193,7 +193,7 @@
                Console.WriteLine(mobile);
                DateTime oneStartTime = DateTime.Now;
                Console.WriteLine("发送一条开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ms"));
                MTWaitInfo mtInfo = new MTWaitInfo(Guid.NewGuid().ToString(), "10690183", "001", mobile, 1, "01","0","【掌骏】验证码测试短信,请忽略,批次:"+ batchId + "序号:"+i,"","",1,1);
                MTWaitInfo mtInfo = new MTWaitInfo(Guid.NewGuid().ToString(), "10690001", "001", mobile, 1, "01","0","【掌骏】验证码测试短信,请忽略,批次:"+ batchId + "序号:"+i,"","",1,1);
               
                sendSubmit(new SubmitInfo(mtInfo, (uint)i, 0));
                DateTime oneEndTime = DateTime.Now;
CMPPHOST/CMPPHOST/bin/Debug/BusinessFactory.dll
Binary files differ
CMPPHOST/CMPPHOST/bin/Debug/BusinessFactory.pdb
Binary files differ
CMPPHOST/CMPPHOST/bin/Debug/CMPP2.dll
Binary files differ
CMPPHOST/CMPPHOST/bin/Debug/CMPP2.pdb
Binary files differ
CMPPHOST/CMPPHOST/bin/Debug/CMPPHOST.exe
Binary files differ
CMPPHOST/CMPPHOST/bin/Debug/CMPPHOST.pdb
Binary files differ
CMPPHOST/CMPPHOST/bin/Debug/DBFactory.dll
Binary files differ
CMPPHOST/CMPPHOST/bin/Debug/DBFactory.pdb
Binary files differ
CMPPHOST/CMPPHOST/obj/Debug/CMPPHOST.csproj.AssemblyReference.cache
Binary files differ
CMPPHOST/CMPPHOST/obj/Debug/CMPPHOST.exe
Binary files differ
CMPPHOST/CMPPHOST/obj/Debug/CMPPHOST.pdb
Binary files differ
Source/.vs/APPCMPP2/v16/.suo
Binary files differ
Source/BusinessFactory_Source/bin/Debug/BusinessFactory.dll
Binary files differ
Source/BusinessFactory_Source/bin/Debug/BusinessFactory.pdb
Binary files differ
Source/BusinessFactory_Source/bin/Debug/DBFactory.dll
Binary files differ
Source/BusinessFactory_Source/bin/Debug/DBFactory.pdb
Binary files differ
Source/BusinessFactory_Source/obj/Debug/BusinessFactory.csproj.AssemblyReference.cache
Binary files differ
Source/BusinessFactory_Source/obj/Debug/BusinessFactory.dll
Binary files differ
Source/BusinessFactory_Source/obj/Debug/BusinessFactory.pdb
Binary files differ
Source/CMPP2_Source/bin/Debug/CMPP2.dll
Binary files differ
Source/CMPP2_Source/bin/Debug/CMPP2.pdb
Binary files differ
Source/CMPP2_Source/obj/Debug/CMPP2.dll
Binary files differ
Source/CMPP2_Source/obj/Debug/CMPP2.pdb
Binary files differ
Source/DBFactory_Source/bin/Debug/DBFactory.dll
Binary files differ
Source/DBFactory_Source/bin/Debug/DBFactory.pdb
Binary files differ
Source/DBFactory_Source/obj/Debug/DBFactory.csproj.AssemblyReference.cache
Binary files differ
Source/DBFactory_Source/obj/Debug/DBFactory.csproj.FileListAbsolute.txt
@@ -30,3 +30,4 @@
C:\Users\mac\Desktop\Work-Archives\SMGW\CMPP\Source\DBFactory_Source\obj\Debug\DBFactory.csproj.CopyComplete
C:\Users\mac\Desktop\Work-Archives\SMGW\CMPP\Source\DBFactory_Source\obj\Debug\DBFactory.dll
C:\Users\mac\Desktop\Work-Archives\SMGW\CMPP\Source\DBFactory_Source\obj\Debug\DBFactory.pdb
C:\Users\mac\Desktop\Work-Archives\SMGW\CMPP\Source\DBFactory_Source\obj\Debug\DBFactory.csproj.AssemblyReference.cache
Source/DBFactory_Source/obj/Debug/DBFactory.dll
Binary files differ
Source/DBFactory_Source/obj/Debug/DBFactory.pdb
Binary files differ
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/db.lock
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/storage.ide
Binary files differ
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/storage.ide-shm
Binary files differ
ThreadTestSMGW/.vs/ThreadTestSMGW/v15/Server/sqlite3/storage.ide-wal
Binary files differ
ThreadTestSMGW/.vs/ThreadTestSMGW/v16/.suo
Binary files differ
ThreadTestSMGW/ThreadTestSMGW.sln
New file
@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThreadTestSMGW", "ThreadTestSMGW\ThreadTestSMGW.csproj", "{41AA65C8-B54E-4ECF-835C-48BC12F71B8C}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {41AA65C8-B54E-4ECF-835C-48BC12F71B8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {41AA65C8-B54E-4ECF-835C-48BC12F71B8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {41AA65C8-B54E-4ECF-835C-48BC12F71B8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {41AA65C8-B54E-4ECF-835C-48BC12F71B8C}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
EndGlobal
ThreadTestSMGW/ThreadTestSMGW/App.config
New file
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="account" value="922002"/>
    <add key="password" value="123456"/>
    <add key="extno" value="2"/>
    <add key="mobiles" value="13611452175"/>
    <add key="content" value="【品上品】你好 我是品上品客服 十分抱歉订单编号: SN1564800905667153"/>
    <add key="URL" value="http://8.129.227.30:7862"/>
    <!--线程数-->
    <add key="ThreadNum" value="1"/>
    <!-- 循环次数-->
    <add key="CycNum" value="1"/>
     <add key="Count" value="1"/>
    <!--开始时间-->
    <add key="startTime" value="13"/>
    <!--结束时间-->
    <add key="endTime" value="15"/>
  <add key="ConnectionString" value="server=.;uid=sa;pwd=123456;database=sqluser"/>
  </appSettings>
  <connectionStrings>
    <add name="ConnectionString" connectionString="server=.;uid=sa;pwd=123456;database=sqluser" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>
ThreadTestSMGW/ThreadTestSMGW/DataSql.cs
New file
@@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Practices.EnterpriseLibrary.Data;
namespace ThreadTestSMGW
{
    public class DataSql
    {
        //Database da = DatabaseFactory.CreateDatabase("ConnectionString");
        ////插入数据
        //public int InsertSql(string starttime,string endtime)
        //{
        //    string sql = @"insert into tb_jzcs(creattime,updatetime) values(@createtime,@updatetime) ;select @@IDENTITY;";
        //    System.Data.SqlClient.SqlCommand cmd = new SqlCommand();
        //    cmd.Parameters.Add(new SqlParameter() { ParameterName = "@createtime", Value = starttime });
        //    cmd.Parameters.Add(new SqlParameter() { ParameterName="@updatetime",Value=endtime});
        //    cmd.CommandText = sql;
        //    cmd.CommandType = CommandType.Text;
        //    cmd.CommandTimeout = 1000000000;
        //    object ret=da.ExecuteScalar(cmd);
        //    return Convert.ToInt32(ret);
        //}
        //public void UpdateSql(string time,int id)
        //{
        //    string sql = @"update tb_jzcs set updatetime=@updatetime where id=@id";
        //    System.Data.SqlClient.SqlCommand cmd = new SqlCommand();
        //    cmd.Parameters.Add(new SqlParameter() { ParameterName = "@updatetime", Value = time });
        //    cmd.Parameters.Add(new SqlParameter() { ParameterName="@id",Value=id});
        //    cmd.CommandText = sql;
        //    cmd.CommandType = CommandType.Text;
        //    cmd.CommandTimeout = 1000000000;
        //    da.ExecuteNonQuery(cmd);
        //}
        /**/
        /// <summary>
        /// SqlBulkCopy
        /// </summary>
        /// <param name="connectionString">目标连接字符</param>
        /// <param name="TableName">目标表</param>
        /// <param name="dt">源数据</param>
        public void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                //生成SqlBulkCopy 实例,构造函数指定了目标数据库,使用SqlBulkCopyOptions.UseInternalTransaction是指迁移动作指定在一个Transaction当中,如果数据迁移中产生错误或异常将发生回滚。
                using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
                {
                    try
                    {
                        sqlbulkcopy.BulkCopyTimeout = 5000;//指定操作完成的Timeout时间
                        sqlbulkcopy.DestinationTableName = TableName;
                        for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                        }
                        sqlbulkcopy.WriteToServer(dt);//WriteToServer方法就是将数据源拷备到目标数据库。在使用WriteToServer方法之前必须先指定 DestinationTableName属性,也就是目标数据库的表名
                    }
                    catch (System.Exception ex)
                    {
                        throw ex;
                    }
                }
            }
        }
    }
}
ThreadTestSMGW/ThreadTestSMGW/ListToDt.cs
New file
@@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using System.Data;
using System.Reflection;
namespace ThreadTestSMGW
{
    public class ListToDt
    {
        public DataTable ListToDataTable<T>(List<T> entitys)
        {
            //检查实体集合不能为空
            if (entitys == null || entitys.Count < 1)
            {
                return new DataTable();
            }
            //取出第一个实体的所有Propertie
            Type entityType = entitys[0].GetType();
            PropertyInfo[] entityProperties = entityType.GetProperties();
            //生成DataTable的structure
            //生产代码中,应将生成的DataTable结构Cache起来,此处略
            DataTable dt = new DataTable("dt");
            for (int i = 0; i < entityProperties.Length; i++)
            {
                //dt.Columns.Add(entityProperties[i].Name, entityProperties[i].PropertyType);
                dt.Columns.Add(entityProperties[i].Name);
            }
            //将所有entity添加到DataTable中
            foreach (object entity in entitys)
            {
                //检查所有的的实体都为同一类型
                if (entity.GetType() != entityType)
                {
                    throw new Exception("要转换的集合元素类型不一致");
                }
                object[] entityValues = new object[entityProperties.Length];
                for (int i = 0; i < entityProperties.Length; i++)
                {
                    entityValues[i] = entityProperties[i].GetValue(entity, null);
                }
                dt.Rows.Add(entityValues);
            }
            return dt;
        }
        }
}
ThreadTestSMGW/ThreadTestSMGW/Program.cs
New file
@@ -0,0 +1,316 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Collections;
using System.Reflection;
using System.ComponentModel;
namespace ThreadTestSMGW
{
    class Program
    {
        //private static int poolFlag = 0;//声明标记
        //private const int amountThread = 10000;//线程总量
        //private const int maxThread = 10000;//可执行线程最大数量
        //private static Mutex muxConsole = new Mutex();
        //初始化短信发送参数
        private static string account = System.Configuration.ConfigurationManager.AppSettings["account"];
        private static string password = System.Configuration.ConfigurationManager.AppSettings["password"];
        private static string mobile = System.Configuration.ConfigurationManager.AppSettings["mobiles"];
        private static string extno = System.Configuration.ConfigurationManager.AppSettings["extno"];
        private static string content = System.Configuration.ConfigurationManager.AppSettings["content"];
        private static string ThreadNum = System.Configuration.ConfigurationManager.AppSettings["ThreadNum"];//线程总数
        private static string CycNum = System.Configuration.ConfigurationManager.AppSettings["CycNum"]; //循环次数
        private static int startTime = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["startTime"]);
        private static int endTime = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["endTime"]);
        public static string conn = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
        private static int CountNum = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["Count"]);
        public static bool listFlag = true; //插入成功标识
        static void Main(string[] args)
        {
            //Thread.Sleep(10000);
            Console.WriteLine("开始执行...");
            Thread threads = new Thread(new ThreadStart(DealSMS));
            threads.Start();
            //Thread[] threads = new Thread[Int32.Parse(ThreadNum)];
            //for (int i = 0; i < Int32.Parse(ThreadNum); i++)
            //{
            //    threads[i] = new Thread(DealSMS);
            //    threads[i].IsBackground = true;
            //    threads[i].Name = "线程" + i;
            //    threads[i].Start();
            //}
            //Thread listThread = new Thread(listTime);//列表处理
            //listThread.Name = "列表线程";
            //listThread.Start();
            //Thread ReportThread = new Thread(GetReport);
            //ReportThread.Start();
            //bool flag = true;
            //while (true)
            //{
            //    for (int i = 0; i < Int32.Parse(ThreadNum); i++)
            //    {
            //        if (threads[i].IsAlive == false)
            //        { flag = false; }
            //        else { flag = true; }
            //    }
            //    if (flag == false)
            //    {
            //        if (listFlag==false)
            //        {
            //            //Console.WriteLine("统计插入完成");
            //            listThread.Abort();
            //            break;
            //        }
            //    }
            //}
            //Console.ReadKey();
        }
        static void GetReport()
        {
            //while (true)
            //{
            //    SMSHandler sms = new SMSHandler();
            //    sms.Report(account, password);
            //    Thread.Sleep(2000);
            //}
        }
        //插入列表
        public static List<SMSModel> smsList = new List<SMSModel>();
        private static object olock = new object();
        public static void addList(string smsid,string starttime,string endtime,string content)
        {
            lock (olock)
            {
                smsList.Add(new SMSModel() { smsid = smsid, starttime = starttime, endtime = endtime,content=content});
            }
        }
        public static int Count = 0;
        //移除列表
        static void listTime()
        {
            Random r = new Random();
            int[] a =new int[60];
            int iii = 1000;
            for (int i = 0; i < 60; i++)
            {
                a[i] = iii;
                iii = 1000 + iii;
            }
            int temp = a[r.Next(59)];
            while (true)
            {
                try
                {
                    if (smsList.Count == CountNum)
                    {
                        Console.WriteLine("统计线程阻塞:" + temp);
                        Thread.Sleep(temp);
                        Console.WriteLine("统计开始...");
                        DataSql ds = new DataSql();
                        ListToDt ltd = new ListToDt();
                        ds.SqlBulkCopyByDatatable(conn, "tb_cs", ltd.ListToDataTable<SMSModel>(smsList));
                        Console.WriteLine("统计结束...");
                        listFlag = false;
                        break;
                    }
                }
                catch (Exception ex)
                { Console.WriteLine(ex.Message); }
                /*
                for (int i = 0; i < smsList.Count; i++)
                    {
                        DataSql ds = new DataSql();
                        try
                        {
                            int ii = ds.InsertSql(smsList[i].starttime, smsList[i].endtime);//插入数据库
                            if (ii > 0)
                            {
                                ++Count; smsList.RemoveAt(i);
                            }
                            else
                            {
                                Console.WriteLine("数据库插入异常..");
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    }
                    */
            }
        }
        //线程处理
        static void DealSMS()
        {
            Thread.CurrentThread.Name = "发送线程";
            var dt = DateTime.Now;
            if(true)
            {
                int i = 0;
                while (i < Int32.Parse(CycNum))
                //while(true)
                {
                    i++;
                    SMSHandler sms = new SMSHandler();
                    //TornadoSMSHandler sms = new TornadoSMSHandler();
                    string addTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
                    string result = sms.SendSMS(account, password, extno, mobile, content);//迈远网关
                    Console.WriteLine(content);
                    //StrToHex sth = new StrToHex();
                    //string content2 = sth.ToHexString(System.Text.Encoding.Default.GetBytes(content));
                    //string result = sms.SendSMS(account,password,mobile,content2);
                    //string[] sArray = result.Split(',');
                    //addList(sArray[0], addTime, sArray[1], content2);
                    //点对点短信提交
                    //string mobileConentList = "13611452175#【掌骏】您的短信码是322734,有效期为30分钟。若非本人操作,请及时修改密码。\n692676113#【掌骏】您的短信码是322734,有效期为30分钟。若非本人操作,请及时修改密码。";
                    //string result = sms.SendSMS(account,password,extno,mobileConentList);
                    //Console.WriteLine(mobileConentList);
                    string str = string.Format("[{0}]--提交时间:{1}--提交结果:{2}", Thread.CurrentThread.Name, addTime, result);
                    //WriteLog(str);
                    Console.WriteLine(str);
                    Console.ReadKey();
                    Thread.Sleep(10);
                }
                Console.WriteLine("["+Thread.CurrentThread.Name+"]--程执行完毕..."+i);
                Thread.CurrentThread.Abort();
            }
        }
        static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim();
        //写日志
        public static void WriteLog(string str)
        {
            try
            {
                LogWriteLock.EnterWriteLock();
                string sFilePath = System.IO.Directory.GetCurrentDirectory();
                string sFileName = DateTime.Now.Date.ToString("yyyy-MM-dd")+"-sms.log";
                sFileName = sFilePath + "\\" + sFileName;
                if (!Directory.Exists(sFilePath))
                {
                    Directory.CreateDirectory(sFilePath);
                }
                FileStream fs;
                StreamWriter sw;
                if (File.Exists(sFileName))
                {
                    fs = new FileStream(sFileName, FileMode.Append, FileAccess.Write);
                }
                else
                {
                    fs = new FileStream(sFileName, FileMode.Create, FileAccess.Write);
                }
                sw = new StreamWriter(fs);
                sw.WriteLine(str);
                sw.Close();
                fs.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                LogWriteLock.ExitWriteLock();
            }
        }
        #region 注释掉的
        /*
        public static void Run()
        {
            muxConsole.WaitOne();  //阻塞队列
            Interlocked.Increment(ref poolFlag);  //标记+1
            if (poolFlag < maxThread)   //判断是否达到线程上限
            {
                muxConsole.ReleaseMutex();     //释放队列锁,加入执行线程
            }
            //Console.WriteLine("{0} 正在运行......\n", Thread.CurrentThread.Name);
            SMSHandler sms = new SMSHandler();
            string errmsg = "";
            bool flag = sms.SendSMS(account,password,extno,mobile,content,out errmsg);
            //Thread.Sleep(3000);   //模拟执行,暂停3秒钟
            //Console.WriteLine("{0} 已经中止....{1}..\n", Thread.CurrentThread.Name,errmsg);
            Interlocked.Decrement(ref poolFlag);  //标记-1
            try
            {
                muxConsole.ReleaseMutex(); //释放阻塞
            }
            catch { }
        }
        public static void Run2()
        {
            SMSHandler sms = new SMSHandler();
            content = "【测试】线程,开始执行测试,时间:" + DateTime.Now.ToString();
            string errmsg = "";
            sms.SendSMS(account, password, extno, mobile, content, out errmsg);
            Console.WriteLine("{0} 已经中止....{1}..\n", Thread.CurrentThread.Name, errmsg);
        }
         */
        #endregion
    }
}
ThreadTestSMGW/ThreadTestSMGW/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的常规信息通过以下
// 特性集控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("ThreadTestSMGW")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Company")]
[assembly: AssemblyProduct("ThreadTestSMGW")]
[assembly: AssemblyCopyright("Copyright © Company 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("fe5778e8-4288-4d1b-97d8-8f3e0f22a5da")]
// 程序集的版本信息由下面四个值组成:
//
//      主版本
//      次版本
//      生成号
//      修订号
//
// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
ThreadTestSMGW/ThreadTestSMGW/SMSHandler.cs
New file
@@ -0,0 +1,250 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
using System.Xml;
namespace ThreadTestSMGW
{
    public class SMSHandler
    {
        public static string SITEURL = System.Configuration.ConfigurationManager.AppSettings["URL"];
        public string errmsg = "";
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="account"></param>
        /// <param name="password"></param>
        /// <param name="extendNo"></param>
        /// <param name="mobileNo"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public string SendSMS(string account, string password, string extendNo, string mobileNo, string content)
        {
            if ( string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(mobileNo) || string.IsNullOrEmpty(content))
            {
                //log4netService.Info(userid+account+password+mobileNo+content);
                errmsg = "参数不全";
                return errmsg;
            }
            /*
            string postData = string.Format("action=send&account=账号&password=密码&mobile=15023239810,13527576163&content=内容&extno=1069012345");
            */
            //string requestUrl = string.Format("http://8.129.227.30:7862/sms");
            string requestUrl = string.Format(SITEURL+"/sms");
            StreamReader reader;
            Uri requestUri = new Uri(requestUrl);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.KeepAlive = true;
            request.Timeout = 1000000;
            StringBuilder data = new StringBuilder();
            data.Append("action=send");
            data.Append(string.Format("&account={0}", account));
            data.Append(string.Format("&password={0}", password));
            data.Append(string.Format("&extno={0}", extendNo));
            data.Append(string.Format("&mobile={0}", mobileNo));
            data.Append(string.Format("&content={0}", content+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")));
            //byte[] byteData = UTF8Encoding.GetEncoding("GB212").GetBytes(data.ToString());
            byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
            request.ContentLength = byteData.Length;
            // 开始请求
            using (Stream postStream = request.GetRequestStream())
            {
                postStream.Write(byteData, 0, byteData.Length);
            }
            WebResponse response = (HttpWebResponse)request.GetResponse();
            //reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
            reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            StringBuilder builder = new StringBuilder();
            char[] buffer = new char[0x400];
            int charCount = 0;
            while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
            {
                builder.Append(buffer, 0, charCount);
            }
            reader.Close();
            string result = builder.ToString();
            if (string.IsNullOrEmpty(result))
            {
                errmsg = "未知异常";
                return errmsg;
            }
            XmlDocument docxml = new XmlDocument();
            docxml.LoadXml(result);
            //DataSql ds = new DataSql();
            string r = docxml.SelectSingleNode("returnsms/returnstatus").InnerText;
            if (r == "Success")
            {
                errmsg = docxml.SelectSingleNode("returnsms/taskID").InnerText;
                //ds.UpdateSql(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),id);
                return errmsg;// +","+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
            }
            else
            {
                errmsg = docxml.SelectSingleNode("returnsms/message").InnerText;
                //ds.UpdateSql(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), id);
                return errmsg;// +"," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
            }
        }
        /// <summary>
        /// 点对点短信发送
        /// </summary>
        /// <param name="account"></param>
        /// <param name="password"></param>
        /// <param name="extendNo"></param>
        /// <param name="mobileConentList"></param>
        /// <returns></returns>
        public string SendSMS(string account, string password, string extendNo, string mobileConentList)
        {
            if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(mobileConentList))
            {
                //log4netService.Info(userid+account+password+mobileNo+content);
                errmsg = "参数不全";
                return errmsg;
            }
            string requestUrl = string.Format(SITEURL + "/sms");
            StreamReader reader;
            Uri requestUri = new Uri(requestUrl);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.KeepAlive = true;
            request.Timeout = 1000000;
            StringBuilder data = new StringBuilder();
            data.Append("action=p2p");
            data.Append(string.Format("&account={0}", account));
            data.Append(string.Format("&password={0}", password));
            data.Append(string.Format("&extno={0}", extendNo));
            data.Append(string.Format("&mobileContentList={0}", mobileConentList));
            data.Append(string.Format("&rt=json"));
            //byte[] byteData = UTF8Encoding.GetEncoding("GB212").GetBytes(data.ToString());
            byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
            request.ContentLength = byteData.Length;
            // 开始请求
            using (Stream postStream = request.GetRequestStream())
            {
                postStream.Write(byteData, 0, byteData.Length);
            }
            WebResponse response = (HttpWebResponse)request.GetResponse();
            //reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
            reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            StringBuilder builder = new StringBuilder();
            char[] buffer = new char[0x400];
            int charCount = 0;
            while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
            {
                builder.Append(buffer, 0, charCount);
            }
            reader.Close();
            string result = builder.ToString();
            if (string.IsNullOrEmpty(result))
            {
                errmsg = "未知异常";
                return errmsg;
            }
            return result;
            //XmlDocument docxml = new XmlDocument();
            //docxml.LoadXml(result);
            //string r = docxml.SelectSingleNode("returnsms/returnstatus").InnerText;
            //if (r == "Success")
            //{
            //    errmsg = docxml.SelectSingleNode("returnsms/taskID").InnerText;
            //    return errmsg;
            //}
            //else
            //{
            //    errmsg = docxml.SelectSingleNode("returnsms/message").InnerText;
            //    return errmsg;
            //}
        }
        public string Report(string account, string password)
        {
            if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password))
            {
                //log4netService.Info(userid+account+password+mobileNo+content);
                errmsg = "参数不全";
                return errmsg;
            }
            /*
            string postData = string.Format("action=send&account=账号&password=密码&mobile=15023239810,13527576163&content=内容&extno=1069012345");
            */
            string requestUrl = string.Format(SITEURL);
            StreamReader reader;
            Uri requestUri = new Uri(requestUrl);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.KeepAlive = true;
            request.Timeout = 1000000;
            StringBuilder data = new StringBuilder();
            data.Append("action=report");
            data.Append(string.Format("&account={0}", account));
            data.Append(string.Format("&password={0}", password));
            //byte[] byteData = UTF8Encoding.GetEncoding("GB212").GetBytes(data.ToString());
            byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
            request.ContentLength = byteData.Length;
            // 开始请求
            using (Stream postStream = request.GetRequestStream())
            {
                postStream.Write(byteData, 0, byteData.Length);
            }
            WebResponse response = (HttpWebResponse)request.GetResponse();
            //reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
            reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            StringBuilder builder = new StringBuilder();
            char[] buffer = new char[0x400];
            int charCount = 0;
            while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
            {
                builder.Append(buffer, 0, charCount);
            }
            reader.Close();
            string result = builder.ToString();
            if (string.IsNullOrEmpty(result))
            {
                errmsg = "未知异常";
                return errmsg;
            }
            return "状态报告" + "," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
        }
    }
}
ThreadTestSMGW/ThreadTestSMGW/SMSModel.cs
New file
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ThreadTestSMGW
{
    public class SMSModel
    {
        public int id { get; set; }
        public string smsid { get; set; }
        public string starttime { get; set; }
        public string endtime { get; set; }
        public string content { get; set; }
    }
}
ThreadTestSMGW/ThreadTestSMGW/StrToHex.cs
New file
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ThreadTestSMGW
{
    public class StrToHex
    {
        public string ToHexString(byte[] bytes)
        {
            string byteStr = string.Empty;
            if (bytes != null || bytes.Length > 0)
            {
                foreach (var item in bytes)
                {
                    byteStr += string.Format("{0:X2}", item);
                }
            }
            return byteStr;
        }
    }
}
ThreadTestSMGW/ThreadTestSMGW/ThreadTestSMGW.csproj
New file
@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{41AA65C8-B54E-4ECF-835C-48BC12F71B8C}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>ThreadTestSMGW</RootNamespace>
    <AssemblyName>ThreadTestSMGW</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <PublishUrl>D:\Backup\桌面\sms\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <AutorunEnabled>true</AutorunEnabled>
    <ApplicationRevision>1</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <UseApplicationTrust>false</UseApplicationTrust>
    <PublishWizardCompleted>true</PublishWizardCompleted>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup>
    <ManifestCertificateThumbprint>A4D4AEDA1A5E298D8C66BE35DB7E3295F2F74D1B</ManifestCertificateThumbprint>
  </PropertyGroup>
  <PropertyGroup>
    <ManifestKeyFile>ThreadTestSMGW_TemporaryKey.pfx</ManifestKeyFile>
  </PropertyGroup>
  <PropertyGroup>
    <GenerateManifests>true</GenerateManifests>
  </PropertyGroup>
  <PropertyGroup>
    <SignManifests>false</SignManifests>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=e44a2bc38ed2c13c, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\..\..\桌面\Microsoft.Practices.EnterpriseLibrary.Common.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.Practices.EnterpriseLibrary.Data">
      <HintPath>..\..\FAQ\Lib\Microsoft.Practices.EnterpriseLibrary.Data.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Data.Linq" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="DataSql.cs" />
    <Compile Include="ListToDt.cs" />
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="SMSHandler.cs" />
    <Compile Include="SMSModel.cs" />
    <Compile Include="StrToHex.cs" />
    <Compile Include="TornadoSMSHandler.cs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="App.config">
      <SubType>Designer</SubType>
    </None>
    <None Include="ThreadTestSMGW_TemporaryKey.pfx" />
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include=".NETFramework,Version=v4.5">
      <Visible>False</Visible>
      <ProductName>Microsoft .NET Framework 4.5 %28x86 和 x64%29</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
ThreadTestSMGW/ThreadTestSMGW/ThreadTestSMGW.csproj.user
New file
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <PublishUrlHistory />
    <InstallUrlHistory />
    <SupportUrlHistory />
    <UpdateUrlHistory />
    <BootstrapperUrlHistory />
    <ErrorReportUrlHistory />
    <FallbackCulture>zh-CN</FallbackCulture>
    <VerifyUploadedFiles>false</VerifyUploadedFiles>
  </PropertyGroup>
  <PropertyGroup>
    <EnableSecurityDebugging>false</EnableSecurityDebugging>
  </PropertyGroup>
</Project>
ThreadTestSMGW/ThreadTestSMGW/ThreadTestSMGW_TemporaryKey.pfx
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/TornadoSMSHandler.cs
New file
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
namespace ThreadTestSMGW
{
    public class TornadoSMSHandler
    {
        //URL读取配置文件
        public static string SITEURL = System.Configuration.ConfigurationManager.AppSettings["URL"];
        public string SendSMS(string un, string pw, string da, string hex)
        {
            string time = System.DateTime.Now.ToString();
            string other = "&dc=15&rd=1";
            string requestUrl = SITEURL + "?un=" + un + "&pw=" + pw + "&da=" + da + "&sm=" + hex + other; //请求地址
            StreamReader reader; //实现一个 TextReader(表示可读取连续字符系列的读取器。),使其以一种特定的编码从字节流中读取字符。
            Uri requestUri = new Uri(requestUrl); //Uri 类,提供统一资源标识符 (URI) 的对象表示形式和对 URI 各部分的轻松访问。
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
            //提供 WebRequest 类的 HTTP 特定的实现。
            request.Method = "Get";
            request.ContentType = "application/x-www-form-urlencoded";
            request.KeepAlive = true;
            request.Timeout = 1000000;
            WebResponse response = (HttpWebResponse)request.GetResponse();
            reader = new StreamReader(response.GetResponseStream());
            StringBuilder builder = new StringBuilder();
            char[] buffer = new char[0x400];
            int charCount = 0;
            while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
            {
                builder.Append(buffer, 0, charCount);
            }
            reader.Close();
            return builder.ToString();
        }
    }
}
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Data.dll
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/Microsoft.Practices.ObjectBuilder.dll
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.application
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
  <assemblyIdentity name="ThreadTestSMGW.application" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <description asmv2:publisher="ThreadTestSMGW" asmv2:product="ThreadTestSMGW" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <deployment install="true" mapFileExtensions="true" />
  <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
    <framework targetVersion="4.5" profile="Full" supportedRuntime="4.0.30319" />
  </compatibleFrameworks>
  <dependency>
    <dependentAssembly dependencyType="install" codebase="ThreadTestSMGW.exe.manifest" size="4918">
      <assemblyIdentity name="ThreadTestSMGW.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>eMng0jCkanpScQxDkfWqZiso+F1hEzP/G5/5M7mP9j8=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
</asmv1:assembly>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.exe
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.exe.config
New file
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="account" value="922002"/>
    <add key="password" value="123456"/>
    <add key="extno" value="2"/>
    <add key="mobiles" value="13611452175"/>
    <add key="content" value="【品上品】你好 我是品上品客服 十分抱歉订单编号: SN1564800905667153"/>
    <add key="URL" value="http://8.129.227.30:7862"/>
    <!--线程数-->
    <add key="ThreadNum" value="1"/>
    <!-- 循环次数-->
    <add key="CycNum" value="1"/>
     <add key="Count" value="1"/>
    <!--开始时间-->
    <add key="startTime" value="13"/>
    <!--结束时间-->
    <add key="endTime" value="15"/>
  <add key="ConnectionString" value="server=.;uid=sa;pwd=123456;database=sqluser"/>
  </appSettings>
  <connectionStrings>
    <add name="ConnectionString" connectionString="server=.;uid=sa;pwd=123456;database=sqluser" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.exe.manifest
New file
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
  <asmv1:assemblyIdentity name="ThreadTestSMGW.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
  <application />
  <entryPoint>
    <assemblyIdentity name="ThreadTestSMGW" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
    <commandLine file="ThreadTestSMGW.exe" parameters="" />
  </entryPoint>
  <trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
        <defaultAssemblyRequest permissionSetReference="Custom" />
      </applicationRequestMinimum>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!--
          UAC 清单选项
          如果要更改 Windows 用户帐户控制级别,请用以下节点之一替换
          requestedExecutionLevel 节点。
        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
          如果要利用文件和注册表虚拟化提供
          向后兼容性,请删除 requestedExecutionLevel 节点。
    -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentOS>
      <osVersionInfo>
        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
      </osVersionInfo>
    </dependentOS>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Practices.EnterpriseLibrary.Data.dll" size="91560">
      <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Data" version="3.1.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>5P3qDSDGz9bDGHn31unvTus6ftmAfkJa6iebqfv+dSI=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Practices.ObjectBuilder.dll" size="64352">
      <assemblyIdentity name="Microsoft.Practices.ObjectBuilder" version="1.0.51206.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>A3j2MHO9WteoM08tQqtzuY6Y5BYmVMF9GS4QRBioGJ8=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ThreadTestSMGW.exe" size="14336">
      <assemblyIdentity name="ThreadTestSMGW" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>y/rO6/DGVeSVQaWCPRlVOOSOUaiHcjDqsRvUPiPrdbA=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <file name="ThreadTestSMGW.exe.config" size="1154">
    <hash>
      <dsig:Transforms>
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
      <dsig:DigestValue>DL4jd/jEoemKHOiTJcCB2LH6LDm8RQXhKKRC1RLdCnk=</dsig:DigestValue>
    </hash>
  </file>
</asmv1:assembly>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.pdb
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.application
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
  <assemblyIdentity name="ThreadTestSMGW.application" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <description asmv2:publisher="Company" asmv2:product="ThreadTestSMGW" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <deployment install="true" mapFileExtensions="true" />
  <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
    <framework targetVersion="4.5" profile="Full" supportedRuntime="4.0.30319" />
  </compatibleFrameworks>
  <dependency>
    <dependentAssembly dependencyType="install" codebase="ThreadTestSMGW.exe.manifest" size="6173">
      <assemblyIdentity name="ThreadTestSMGW.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>mLCzw+Qa/prAofa+8dnMGNifSIFhBLMMAWFUYVePeFQ=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
</asmv1:assembly>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.exe
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.exe.config
New file
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="account" value="922001"/>
    <add key="password" value="123456"/>
    <add key="extno" value="1"/>
    <add key="mobiles" value="13611452175,16626418557,18124279296"/>
    <add key="content" value="【신한은행】고객님이 신한은행에 등록하신 신분증명자료(여권) 유효기간이 만료 되었음을 알려드립니다. 정상 거래에 영향이 없도록 빠른 시일내로 유효 한 신분증명자료(여권)를 소지하시고 당 행 창구에 찾아주시기 바랍니다. 질문이 있으시면 400-6688-600에 문의하시기 바랍니다. 감사합니다."/>
    <add key="URL" value="http://47.98.114.143:7862"/>
    <!--线程数-->
    <add key="ThreadNum" value="1"/>
    <!-- 循环次数-->
    <add key="CycNum" value="10"/>
     <add key="Count" value="10"/>
    <!--开始时间-->
    <add key="startTime" value="13"/>
    <!--结束时间-->
    <add key="endTime" value="15"/>
  <add key="ConnectionString" value="server=.;uid=sa;pwd=123456;database=sqluser"/>
  </appSettings>
  <connectionStrings>
    <add name="ConnectionString" connectionString="server=.;uid=sa;pwd=123456;database=sqluser" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/ThreadTestSMGW.vshost.exe.manifest
New file
@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
  <asmv1:assemblyIdentity name="ThreadTestSMGW.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
  <application />
  <entryPoint>
    <assemblyIdentity name="ThreadTestSMGW" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
    <commandLine file="ThreadTestSMGW.exe" parameters="" />
  </entryPoint>
  <trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
        <defaultAssemblyRequest permissionSetReference="Custom" />
      </applicationRequestMinimum>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!--
          UAC 清单选项
          如果要更改 Windows 用户帐户控制级别,请用以下节点之一替换
          requestedExecutionLevel 节点。
        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
          如果要利用文件和注册表虚拟化提供
          向后兼容性,请删除 requestedExecutionLevel 节点。
    -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentOS>
      <osVersionInfo>
        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
      </osVersionInfo>
    </dependentOS>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Common" version="3.1.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Common" version="4.1.0.0" publicKeyToken="E44A2BC38ED2C13C" language="neutral" processorArchitecture="msil" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Practices.ObjectBuilder2" version="2.2.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Practices.Unity" version="1.2.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Practices.EnterpriseLibrary.Data.dll" size="91560">
      <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Data" version="3.1.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>5P3qDSDGz9bDGHn31unvTus6ftmAfkJa6iebqfv+dSI=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Practices.ObjectBuilder.dll" size="64352">
      <assemblyIdentity name="Microsoft.Practices.ObjectBuilder" version="1.0.51206.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>A3j2MHO9WteoM08tQqtzuY6Y5BYmVMF9GS4QRBioGJ8=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ThreadTestSMGW.exe" size="13824">
      <assemblyIdentity name="ThreadTestSMGW" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>ywc7qPyytxIfXCkYgcC9KCcNShlf4L/jICI/Y5dbvd8=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <file name="ThreadTestSMGW.exe.config" size="1481">
    <hash>
      <dsig:Transforms>
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
      <dsig:DigestValue>KjgjBj63dKNSVQImneSWtD57529jQqFCUoUhzw2Iwxc=</dsig:DigestValue>
    </hash>
  </file>
</asmv1:assembly>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/app.publish/ThreadTestSMGW.exe
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.exe
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.exe.config
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
<appSettings>
  <!--启动程序个数-->
  <add key="Num" value="10"/>
</appSettings>
</configuration>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.pdb
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.vshost.exe
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.vshost.exe.config
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
<appSettings>
  <!--启动程序个数-->
  <add key="Num" value="10"/>
</appSettings>
</configuration>
ThreadTestSMGW/ThreadTestSMGW/bin/Debug/cmd.vshost.exe.manifest
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.cs
New file
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.application
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
  <assemblyIdentity name="ThreadTestSMGW.application" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <description asmv2:publisher="ThreadTestSMGW" asmv2:product="ThreadTestSMGW" xmlns="urn:schemas-microsoft-com:asm.v1" />
  <deployment install="true" mapFileExtensions="true" />
  <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
    <framework targetVersion="4.5" profile="Full" supportedRuntime="4.0.30319" />
  </compatibleFrameworks>
  <dependency>
    <dependentAssembly dependencyType="install" codebase="ThreadTestSMGW.exe.manifest" size="4918">
      <assemblyIdentity name="ThreadTestSMGW.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>eMng0jCkanpScQxDkfWqZiso+F1hEzP/G5/5M7mP9j8=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
</asmv1:assembly>
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.AssemblyReference.cache
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.CopyComplete
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.CoreCompileInputs.cache
New file
@@ -0,0 +1 @@
e31a5f56dfebab6c6ec67a9e294368062e79dc92
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csproj.FileListAbsolute.txt
New file
@@ -0,0 +1,39 @@
d:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe.config
d:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe
d:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.pdb
d:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.csprojResolveAssemblyReference.cache
d:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.exe
d:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.pdb
D:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\Microsoft.Practices.EnterpriseLibrary.Data.dll
D:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\Microsoft.Practices.ObjectBuilder.dll
D:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe.manifest
D:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.application
D:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.exe.manifest
D:\Backup\我的文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.application
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.csproj.CoreCompileInputs.cache
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.exe
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.pdb
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe.config
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe.manifest
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.application
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.pdb
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\Microsoft.Practices.EnterpriseLibrary.Data.dll
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\Microsoft.Practices.ObjectBuilder.dll
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.exe.manifest
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.application
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.csproj.CopyComplete
C:\Users\mac\Desktop\Archives\旧开发项目文档\Visual Studio 2012\Projects\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.csprojAssemblyReference.cache
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe.config
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe.manifest
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.application
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.exe
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\ThreadTestSMGW.pdb
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\bin\Debug\Microsoft.Practices.ObjectBuilder.dll
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.csproj.CoreCompileInputs.cache
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.exe.manifest
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.application
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.csproj.CopyComplete
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.exe
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.pdb
C:\Users\mac\Desktop\Archives\SMGW\ThreadTestSMGW\ThreadTestSMGW\obj\Debug\ThreadTestSMGW.csproj.AssemblyReference.cache
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.csprojResolveAssemblyReference.cache
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.exe
Binary files differ
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.exe.manifest
New file
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
  <asmv1:assemblyIdentity name="ThreadTestSMGW.exe" version="1.0.0.1" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
  <application />
  <entryPoint>
    <assemblyIdentity name="ThreadTestSMGW" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
    <commandLine file="ThreadTestSMGW.exe" parameters="" />
  </entryPoint>
  <trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
        <defaultAssemblyRequest permissionSetReference="Custom" />
      </applicationRequestMinimum>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!--
          UAC 清单选项
          如果要更改 Windows 用户帐户控制级别,请用以下节点之一替换
          requestedExecutionLevel 节点。
        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
          如果要利用文件和注册表虚拟化提供
          向后兼容性,请删除 requestedExecutionLevel 节点。
    -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentOS>
      <osVersionInfo>
        <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
      </osVersionInfo>
    </dependentOS>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Practices.EnterpriseLibrary.Data.dll" size="91560">
      <assemblyIdentity name="Microsoft.Practices.EnterpriseLibrary.Data" version="3.1.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>5P3qDSDGz9bDGHn31unvTus6ftmAfkJa6iebqfv+dSI=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Practices.ObjectBuilder.dll" size="64352">
      <assemblyIdentity name="Microsoft.Practices.ObjectBuilder" version="1.0.51206.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>A3j2MHO9WteoM08tQqtzuY6Y5BYmVMF9GS4QRBioGJ8=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ThreadTestSMGW.exe" size="14336">
      <assemblyIdentity name="ThreadTestSMGW" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
        <dsig:DigestValue>y/rO6/DGVeSVQaWCPRlVOOSOUaiHcjDqsRvUPiPrdbA=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
  <file name="ThreadTestSMGW.exe.config" size="1154">
    <hash>
      <dsig:Transforms>
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
      <dsig:DigestValue>DL4jd/jEoemKHOiTJcCB2LH6LDm8RQXhKKRC1RLdCnk=</dsig:DigestValue>
    </hash>
  </file>
</asmv1:assembly>
ThreadTestSMGW/ThreadTestSMGW/obj/Debug/ThreadTestSMGW.pdb
Binary files differ