十0多行代码达成陆秒完毕50万条三多线程并发日志文件写入,轻易的开发银行窗体

复制代码 代码如下:

997755.com澳门葡京 1using System;
997755.com澳门葡京 2using System.Drawing;
997755.com澳门葡京 3using System.Collections;
997755.com澳门葡京 4using System.ComponentModel;
997755.com澳门葡京 5using System.Windows.Forms;
997755.com澳门葡京 6using System.Data;
997755.com澳门葡京 7using System.Threading; 
997755.com澳门葡京 8
997755.com澳门葡京 9namespace 二十多线程操作
997755.com澳门葡京 10997755.com澳门葡京 11997755.com澳门葡京 12{
997755.com澳门葡京 13997755.com澳门葡京 14    /**//// <summary>
997755.com澳门葡京 15    /// Form1 的摘要表达。
997755.com澳门葡京 16    /// </summary>
997755.com澳门葡京 17    public class Form1 : System.Windows.Forms.Form
997755.com澳门葡京 18997755.com澳门葡京 19    997755.com澳门葡京 20{
997755.com澳门葡京 21        private System.Windows.Forms.Panel panel1;
997755.com澳门葡京 22        private System.Windows.Forms.StatusBar statusBar1;
997755.com澳门葡京 23        private System.Windows.Forms.Panel panel2;
997755.com澳门葡京 24        private System.Windows.Forms.Button button1;
997755.com澳门葡京 25        private System.Windows.Forms.RichTextBox myRichTextBox;
997755.com澳门葡京 26        private System.Windows.Forms.Button button2;
997755.com澳门葡京 27        private System.Windows.Forms.Button button3;
997755.com澳门葡京 28        private System.Windows.Forms.Button button4;
997755.com澳门葡京 29        private System.Windows.Forms.Button button5;
997755.com澳门葡京 30        private System.Windows.Forms.Button button6;
997755.com澳门葡京 31997755.com澳门葡京 32        /**//// <summary>
997755.com澳门葡京 33        /// 必需的设计器变量。
997755.com澳门葡京 34        /// </summary>
997755.com澳门葡京 35        private System.ComponentModel.Container components = null;
997755.com澳门葡京 36
997755.com澳门葡京 37        public Form1()
997755.com澳门葡京 38997755.com澳门葡京 39        997755.com澳门葡京 40{
997755.com澳门葡京 41            //
997755.com澳门葡京 42            // Windows 窗体设计器协理所必需的
997755.com澳门葡京 43            //
997755.com澳门葡京 44            InitializeComponent();
997755.com澳门葡京 45
997755.com澳门葡京 46            //
997755.com澳门葡京 47            // TODO: 在 InitializeComponent 调用后增添其他构造函数代码
997755.com澳门葡京 48            //
997755.com澳门葡京 49        }
997755.com澳门葡京 50
997755.com澳门葡京 51997755.com澳门葡京 52        /**//// <summary>
997755.com澳门葡京 53        /// 清理全体正在利用的财富。
997755.com澳门葡京 54        /// </summary>
997755.com澳门葡京 55        protected override void Dispose( bool disposing )
997755.com澳门葡京 56997755.com澳门葡京 57        997755.com澳门葡京 58{
997755.com澳门葡京 59            if( disposing )
997755.com澳门葡京 60997755.com澳门葡京 61            997755.com澳门葡京 62{
997755.com澳门葡京 63                if (components != null) 
997755.com澳门葡京 64997755.com澳门葡京 65                997755.com澳门葡京 66{
997755.com澳门葡京 67                    components.Dispose();
997755.com澳门葡京 68                }
997755.com澳门葡京 69            }
997755.com澳门葡京 70            base.Dispose( disposing );
997755.com澳门葡京 71        }
997755.com澳门葡京 72
997755.com澳门葡京 73997755.com澳门葡京 74        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
997755.com澳门葡京 75997755.com澳门葡京 76        /**//// <summary>
997755.com澳门葡京 77        /// 设计器帮助所需的方式 – 不要接纳代码编辑器修改
997755.com澳门葡京 78        /// 此方法的剧情。
997755.com澳门葡京 79        /// </summary>
997755.com澳门葡京 80        private void InitializeComponent()
997755.com澳门葡京 81997755.com澳门葡京 82        997755.com澳门葡京 83{
997755.com澳门葡京 84            this.panel1 = new System.Windows.Forms.Panel();
997755.com澳门葡京 85            this.statusBar1 = new System.Windows.Forms.StatusBar();
997755.com澳门葡京 86            this.panel2 = new System.Windows.Forms.Panel();
997755.com澳门葡京 87            this.myRichTextBox = new System.Windows.Forms.RichTextBox();
997755.com澳门葡京 88            this.button1 = new System.Windows.Forms.Button();
997755.com澳门葡京 89            this.button2 = new System.Windows.Forms.Button();
997755.com澳门葡京 90            this.button3 = new System.Windows.Forms.Button();
997755.com澳门葡京 91            this.button4 = new System.Windows.Forms.Button();
997755.com澳门葡京 92            this.button5 = new System.Windows.Forms.Button();
997755.com澳门葡京 93            this.button6 = new System.Windows.Forms.Button();
997755.com澳门葡京 94            this.panel2.SuspendLayout();
997755.com澳门葡京 95            this.SuspendLayout();
997755.com澳门葡京 96            // 
997755.com澳门葡京 97            // panel1
997755.com澳门葡京 98            // 
997755.com澳门葡京 99            this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
997755.com澳门葡京 100            this.panel1.Location = new System.Drawing.Point(0, 0);
997755.com澳门葡京 101            this.panel1.Name = “panel1”;
997755.com澳门葡京 102            this.panel1.Size = new System.Drawing.Size(696, 32);
997755.com澳门葡京 103997755.com澳门葡京 ,            this.panel1.TabIndex = 1;
997755.com澳门葡京 104            // 
997755.com澳门葡京 105            // statusBar1
997755.com澳门葡京 106            // 
997755.com澳门葡京 107            this.statusBar1.Location = new System.Drawing.Point(0, 392);
997755.com澳门葡京 108            this.statusBar1.Name = “statusBar1”;
997755.com澳门葡京 109            this.statusBar1.ShowPanels = true;
997755.com澳门葡京 110            this.statusBar1.Size = new System.Drawing.Size(696, 22);
997755.com澳门葡京 111            this.statusBar1.TabIndex = 2;
997755.com澳门葡京 112            // 
997755.com澳门葡京 113            // panel2
997755.com澳门葡京 114            // 
997755.com澳门葡京 115            this.panel2.Controls.Add(this.button3);
997755.com澳门葡京 116            this.panel2.Controls.Add(this.button2);
997755.com澳门葡京 117            this.panel2.Controls.Add(this.button1);
997755.com澳门葡京 118            this.panel2.Controls.Add(this.button4);
997755.com澳门葡京 119            this.panel2.Controls.Add(this.button5);
997755.com澳门葡京 120            this.panel2.Controls.Add(this.button6);
997755.com澳门葡京 121            this.panel2.Dock = System.Windows.Forms.DockStyle.Right;
997755.com澳门葡京 122            this.panel2.Location = new System.Drawing.Point(544, 32);
997755.com澳门葡京 123            this.panel2.Name = “panel2”;
997755.com澳门葡京 124            this.panel2.Size = new System.Drawing.Size(152, 360);
997755.com澳门葡京 125            this.panel2.TabIndex = 3;
997755.com澳门葡京 126            // 
997755.com澳门葡京 127            // myRichTextBox
997755.com澳门葡京 128            // 
997755.com澳门葡京 129            this.myRichTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
997755.com澳门葡京 130            this.myRichTextBox.Location = new System.Drawing.Point(0, 32);
997755.com澳门葡京 131            this.myRichTextBox.Name = “myRichTextBox”;
997755.com澳门葡京 132            this.myRichTextBox.Size = new System.Drawing.Size(544, 360);
997755.com澳门葡京 133            this.myRichTextBox.TabIndex = 4;
997755.com澳门葡京 134            this.myRichTextBox.Text = “”;
997755.com澳门葡京 135            // 
997755.com澳门葡京 136            // button1
997755.com澳门葡京 137            // 
997755.com澳门葡京 138            this.button1.Location = new System.Drawing.Point(16, 16);
997755.com澳门葡京 139            this.button1.Name = “button1”;
997755.com澳门葡京 140            this.button1.Size = new System.Drawing.Size(120, 24);
997755.com澳门葡京 141            this.button1.TabIndex = 0;
997755.com澳门葡京 142            this.button1.Text = “双线程”;
997755.com澳门葡京 143            this.button1.Click += new System.EventHandler(this.button1_Click);
997755.com澳门葡京 144            // 
997755.com澳门葡京 145            // button2
997755.com澳门葡京 146            // 
997755.com澳门葡京 147            this.button2.Location = new System.Drawing.Point(16, 48);
997755.com澳门葡京 148            this.button2.Name = “button2”;
997755.com澳门葡京 149            this.button2.Size = new System.Drawing.Size(120, 23);
997755.com澳门葡京 150            this.button2.TabIndex = 1;
997755.com澳门葡京 151            this.button2.Text = “调其余类中的线程式”;
997755.com澳门葡京 152            this.button2.Click += new System.EventHandler(this.button2_Click);
997755.com澳门葡京 153            // 
997755.com澳门葡京 154            // button3
997755.com澳门葡京 155            // 
997755.com澳门葡京 156            this.button3.Location = new System.Drawing.Point(16, 80);
997755.com澳门葡京 157            this.button3.Name = “button3”;
997755.com澳门葡京 158            this.button3.Size = new System.Drawing.Size(120, 24);
997755.com澳门葡京 159            this.button3.TabIndex = 2;
997755.com澳门葡京 160            this.button三.Text = “线程休眠”;
997755.com澳门葡京 161十0多行代码达成陆秒完毕50万条三多线程并发日志文件写入,轻易的开发银行窗体。            this.button3.Click += new System.EventHandler(this.button3_Click);
997755.com澳门葡京 162            // 
997755.com澳门葡京 163            // button4
997755.com澳门葡京 164            // 
997755.com澳门葡京 165            this.button4.Location = new System.Drawing.Point(16, 112);
997755.com澳门葡京 166            this.button4.Name = “button4”;
997755.com澳门葡京 167            this.button4.Size = new System.Drawing.Size(120, 24);
997755.com澳门葡京 168            this.button4.TabIndex = 2;
997755.com澳门葡京 169            this.button肆.Text = “设定为后台线程”;
997755.com澳门葡京 170            this.button4.Click += new System.EventHandler(this.button4_Click);
997755.com澳门葡京 171            // 
997755.com澳门葡京 172            // button5
997755.com澳门葡京 173            // 
997755.com澳门葡京 174            this.button5.Location = new System.Drawing.Point(16, 152);
997755.com澳门葡京 175            this.button5.Name = “button5”;
997755.com澳门葡京 176            this.button5.Size = new System.Drawing.Size(120, 24);
997755.com澳门葡京 177            this.button5.TabIndex = 2;
997755.com澳门葡京 178            this.button伍.Text = “设定优先级和封堵调用”;
997755.com澳门葡京 179            this.button5.Click += new System.EventHandler(this.button5_Click);
997755.com澳门葡京 180            // 
997755.com澳门葡京 181            // button6
997755.com澳门葡京 182            // 
997755.com澳门葡京 183            this.button6.Location = new System.Drawing.Point(16, 192);
997755.com澳门葡京 184            this.button6.Name = “button6”;
997755.com澳门葡京 185            this.button6.Size = new System.Drawing.Size(120, 24);
997755.com澳门葡京 186            this.button6.TabIndex = 2;
997755.com澳门葡京 187            this.button6.Text = “设定阻塞调用时间”;
997755.com澳门葡京 188            this.button6.Click += new System.EventHandler(this.button6_Click);
997755.com澳门葡京 189            // 
997755.com澳门葡京 190            // Form1
997755.com澳门葡京 191            // 
997755.com澳门葡京 192            this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
997755.com澳门葡京 193            this.ClientSize = new System.Drawing.Size(696, 414);
997755.com澳门葡京 194            this.Controls.Add(this.myRichTextBox);
997755.com澳门葡京 195            this.Controls.Add(this.panel2);
997755.com澳门葡京 196            this.Controls.Add(this.statusBar1);
997755.com澳门葡京 197            this.Controls.Add(this.panel1);
997755.com澳门葡京 198            this.Name = “Form1”;
997755.com澳门葡京 199            this.Text = “Form1”;
997755.com澳门葡京 200            this.Load += new System.EventHandler(this.Form1_Load);
997755.com澳门葡京 201            this.panel2.ResumeLayout(false);
997755.com澳门葡京 202            this.ResumeLayout(false);
997755.com澳门葡京 203
997755.com澳门葡京 204        }
997755.com澳门葡京 205        #endregion
997755.com澳门葡京 206
997755.com澳门葡京 207997755.com澳门葡京 208        /**//// <summary>
997755.com澳门葡京 209        /// 应用程序的主入口点。
997755.com澳门葡京 210        /// </summary>
997755.com澳门葡京 211        [STAThread]
997755.com澳门葡京 212        static void Main() 
997755.com澳门葡京 213997755.com澳门葡京 214        997755.com澳门葡京 215{
997755.com澳门葡京 216            Application.Run(new Form1());
997755.com澳门葡京 217        }
997755.com澳门葡京 218
997755.com澳门葡京 219        private void Form1_Load(object sender, System.EventArgs e)
997755.com澳门葡京 220997755.com澳门葡京 221        997755.com澳门葡京 222{
997755.com澳门葡京 223        
997755.com澳门葡京 224        }
997755.com澳门葡京 225        # region “button1”
997755.com澳门葡京 226        //public static void Thread1() 
997755.com澳门葡京 227        public  void Thread1() 
997755.com澳门葡京 228997755.com澳门葡京 229        997755.com澳门葡京 230{
997755.com澳门葡京 231            for (int i = 0; i < 10; i++) 
997755.com澳门葡京 232997755.com澳门葡京 233            997755.com澳门葡京 234{
997755.com澳门葡京 235                this.myRichTextBox.Text +=String.Format(“\nThread1 {0} “, i);
997755.com澳门葡京 236            }
997755.com澳门葡京 237        }
997755.com澳门葡京 238
997755.com澳门葡京 239        //public static void Thread2() 
997755.com澳门葡京 240        public  void Thread2() 
997755.com澳门葡京 241997755.com澳门葡京 242        997755.com澳门葡京 243{
997755.com澳门葡京 244            for (int i = 0; i < 10; i++) 
997755.com澳门葡京 245997755.com澳门葡京 246            997755.com澳门葡京 247{
997755.com澳门葡京 248                this.myRichTextBox.Text +=String.Format(“\nThread2 {0}”, i);
997755.com澳门葡京 249            }
997755.com澳门葡京 250        }
997755.com澳门葡京 251
997755.com澳门葡京 252        
997755.com澳门葡京 253        private void button1_Click(object sender, System.EventArgs e)
997755.com澳门葡京 254997755.com澳门葡京 255        997755.com澳门葡京 256{
997755.com澳门葡京 257        
997755.com澳门葡京 258            this.myRichTextBox.Text =””;
997755.com澳门葡京 259            Thread tid1 = new Thread(new ThreadStart(Thread1 ) );
997755.com澳门葡京 260            Thread tid2 = new Thread(new ThreadStart(Thread2 ) );
997755.com澳门葡京 261
997755.com澳门葡京 262            tid1.Start();
997755.com澳门葡京 263            tid2.Start();
997755.com澳门葡京 264        }
997755.com澳门葡京 265
997755.com澳门葡京 266        #endregion
997755.com澳门葡京 267997755.com澳门葡京 268        “button2″#region “button2”
997755.com澳门葡京 269        private void button2_Click(object sender, System.EventArgs e)
997755.com澳门葡京 270997755.com澳门葡京 271        997755.com澳门葡京 272{
997755.com澳门葡京 273            execThread();
997755.com澳门葡京 274        
997755.com澳门葡京 275        }
997755.com澳门葡京 276        private static void execThread()
997755.com澳门葡京 277997755.com澳门葡京 278        997755.com澳门葡京 279{
997755.com澳门葡京 280            Thread tid1 = new Thread(new ThreadStart(MyThread.Thread1 ) );
997755.com澳门葡京 281            Thread tid2 = new Thread(new ThreadStart(MyThread.Thread2 ) );
997755.com澳门葡京 282
997755.com澳门葡京 283            tid1.Start();
997755.com澳门葡京 284            tid2.Start();
997755.com澳门葡京 285        }
997755.com澳门葡京 286        # endregion
997755.com澳门葡京 287997755.com澳门葡京 288        “线程休眠”#region “线程休眠”
997755.com澳门葡京 289        private void button3_Click(object sender, System.EventArgs e)
997755.com澳门葡京 290997755.com澳门葡京 291        997755.com澳门葡京 292{
997755.com澳门葡京 293            
997755.com澳门葡京 294                    
997755.com澳门葡京 295            //            Thread tid1 = new Thread(new ThreadStart(Thread3) );
997755.com澳门葡京 296            //            Thread tid2 = new Thread(new ThreadStart(Thread3) );
997755.com澳门葡京 297            //
997755.com澳门葡京 298            //            tid1.Start();
997755.com澳门葡京 299            //            tid2.Start();
997755.com澳门葡京 300
997755.com澳门葡京 301            //定义成static 型后将不会油不过生前边线程实行的图景
997755.com澳门葡京 302
997755.com澳门葡京 303            execThread贰(); //休眠1秒钟
997755.com澳门葡京 304
997755.com澳门葡京 305        }
997755.com澳门葡京 306        private static void execThread2()
997755.com澳门葡京 307997755.com澳门葡京 308        997755.com澳门葡京 309{
997755.com澳门葡京 310
997755.com澳门葡京 311            MyThread thr1 = new MyThread();
997755.com澳门葡京 312            MyThread thr2 = new MyThread();
997755.com澳门葡京 313
997755.com澳门葡京 314            Thread tid1 = new Thread(new ThreadStart(thr1.Thread3) );
997755.com澳门葡京 315            Thread tid2 = new Thread(new ThreadStart(thr2.Thread3) );
997755.com澳门葡京 316            
997755.com澳门葡京 317            tid1.Name = “Thread 31”;
997755.com澳门葡京 318            tid2.Name = “Thread 32”;
997755.com澳门葡京 319
997755.com澳门葡京 320            tid1.Start();
997755.com澳门葡京 321            tid2.Start();
997755.com澳门葡京 322
997755.com澳门葡京 323            if(MyThread.gsCr >=5)
997755.com澳门葡京 324997755.com澳门葡京 325            997755.com澳门葡京 326{
997755.com澳门葡京 327                tid1.Start();
997755.com澳门葡京 328                tid2.Start();
997755.com澳门葡京 329
997755.com澳门葡京 330                try 
997755.com澳门葡京 331997755.com澳门葡京 332                997755.com澳门葡京 333{
997755.com澳门葡京 334                    tid1.Abort();
997755.com澳门葡京 335                    tid2.Abort();
997755.com澳门葡京 336                }
997755.com澳门葡京 337                catch (ThreadAbortException tae) 
997755.com澳门葡京 338997755.com澳门葡京 339                997755.com澳门葡京 340{
997755.com澳门葡京 341                    Console.WriteLine(tae.ToString() );
997755.com澳门葡京 342                }
997755.com澳门葡京 343                Console.WriteLine(“End of Main”);
997755.com澳门葡京 344                
997755.com澳门葡京 345            }
997755.com澳门葡京 346
997755.com澳门葡京 347        }
997755.com澳门葡京 348
997755.com澳门葡京 349        //设定为后台线程
997755.com澳门葡京 350        private static void  execThread4()
997755.com澳门葡京 351997755.com澳门葡京 352        997755.com澳门葡京 353{
997755.com澳门葡京 354            
997755.com澳门葡京 355
997755.com澳门葡京 356            Console.WriteLine(“Before start thread”);
997755.com澳门葡京 357
997755.com澳门葡京 358            MyThread thr1 = new MyThread();
997755.com澳门葡京 359            MyThread thr2 = new MyThread();
997755.com澳门葡京 360
997755.com澳门葡京 361            Thread tid1 = new Thread(new ThreadStart(thr1.Thread3) );
997755.com澳门葡京 362            Thread tid2 = new Thread(new ThreadStart(thr2.Thread3) );
997755.com澳门葡京 363
997755.com澳门葡京 364            tid1.Name = “Thread 31”;
997755.com澳门葡京 365            tid2.Name = “Thread 32”;
997755.com澳门葡京 366
997755.com澳门葡京 367            tid一.IsBackground = true; //是不是为后台线程
997755.com澳门葡京 368            tid2.IsBackground = true;
997755.com澳门葡京 369
997755.com澳门葡京 370            try 
997755.com澳门葡京 371997755.com澳门葡京 372            997755.com澳门葡京 373{
997755.com澳门葡京 374                tid1.Start();
997755.com澳门葡京 375                tid2.Start();
997755.com澳门葡京 376            }
997755.com澳门葡京 377            catch (ThreadStateException te) 
997755.com澳门葡京 378997755.com澳门葡京 379            997755.com澳门葡京 380{
997755.com澳门葡京 381                Console.WriteLine(te.ToString() );
997755.com澳门葡京 382            }
997755.com澳门葡京 383
997755.com澳门葡京 384            Thread.Sleep(10);
997755.com澳门葡京 385
997755.com澳门葡京 386            Console.WriteLine(“End of Main”);
997755.com澳门葡京 387        }
997755.com澳门葡京 388
997755.com澳门葡京 389        public  void Thread3() 
997755.com澳门葡京 390997755.com澳门葡京 391        997755.com澳门葡京 392{
997755.com澳门葡京 393            for (int i = 0; i < 10; i++) 
997755.com澳门葡京 394997755.com澳门葡京 395            997755.com澳门葡京 396{
997755.com澳门葡京 397                this.myRichTextBox.Text +=String.Format(“\nThread3 {0} “, i);
997755.com澳门葡京 398                //Thread.Sleep(1) ;  //休眠1分钟
997755.com澳门葡京 399                int iHour = 0;
997755.com澳门葡京 400                int iMin = 0;
997755.com澳门葡京 401                int iSec = 1; //-1
997755.com澳门葡京 402                Thread.Sleep(new TimeSpan(iHour, iMin, iSec) );
997755.com澳门葡京 403            }
997755.com澳门葡京 404        }
997755.com澳门葡京 405        #endregion
997755.com澳门葡京 406
997755.com澳门葡京 407        private void button4_Click(object sender, System.EventArgs e)
997755.com澳门葡京 408997755.com澳门葡京 409        997755.com澳门葡京 410{
997755.com澳门葡京 411             
997755.com澳门葡京 412            System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
997755.com澳门葡京 413            myTimer.Interval =1;
997755.com澳门葡京 414            myTimer.Tick+=new EventHandler(myTimer_Tick); 
997755.com澳门葡京 415            myTimer.Start(); 
997755.com澳门葡京 416            
997755.com澳门葡京 417            execThread四();  //设定为后台运营
997755.com澳门葡京 418            
997755.com澳门葡京 419            Message博克斯.Show(“运营截止” + “共用时:”+iTimer.ToString() ) ;
997755.com澳门葡京 420            myTimer.Stop(); 
997755.com澳门葡京 421            
997755.com澳门葡京 422        
997755.com澳门葡京 423
997755.com澳门葡京 424
997755.com澳门葡京 425        }
997755.com澳门葡京 426        int iTimer=0;
997755.com澳门葡京 427        private void myTimer_Tick(object sender, EventArgs e)
997755.com澳门葡京 428997755.com澳门葡京 429        997755.com澳门葡京 430{
997755.com澳门葡京 431            iTimer+=1;
997755.com澳门葡京 432        }
997755.com澳门葡京 433
997755.com澳门葡京 434        private static void execThread5()  //设定优先级和封堵调用
997755.com澳门葡京 435997755.com澳门葡京 436        997755.com澳门葡京 437{
997755.com澳门葡京 438            MyThread thr1 = new MyThread();
997755.com澳门葡京 439            MyThread thr2 = new MyThread();
997755.com澳门葡京 440
997755.com澳门葡京 441            Thread tid1 = new Thread(new ThreadStart(thr1.Thread3) );
997755.com澳门葡京 442            Thread tid2 = new Thread(new ThreadStart(thr2.Thread3) );
997755.com澳门葡京 443
997755.com澳门葡京 444            tid1.Name = “Thread 31”;
997755.com澳门葡京 445            tid2.Name = “Thread 32”;
997755.com澳门葡京 446
997755.com澳门葡京 447            tid2.Priority = ThreadPriority.Highest;  // tid二优先级高于tid一
997755.com澳门葡京 448            tid1.Priority = ThreadPriority.Lowest;
997755.com澳门葡京 449
997755.com澳门葡京 450            try 
997755.com澳门葡京 451997755.com澳门葡京 452            997755.com澳门葡京 453{
997755.com澳门葡京 454                tid1.Start();
997755.com澳门葡京 455                tid2.Start();
997755.com澳门葡京 456            }
997755.com澳门葡京 457            catch (ThreadStateException te) 
997755.com澳门葡京 458997755.com澳门葡京 459            997755.com澳门葡京 460{
997755.com澳门葡京 461                Console.WriteLine(te.ToString() );
997755.com澳门葡京 462            }
997755.com澳门葡京 463
997755.com澳门葡京 464            tid一.Join();  //阻塞调用线程
997755.com澳门葡京 465            tid2.Join();
997755.com澳门葡京 466
997755.com澳门葡京 467            Console.WriteLine(“End of Main”);
997755.com澳门葡京 468        }
997755.com澳门葡京 469
997755.com澳门葡京 470        private void button5_Click(object sender, System.EventArgs e)
997755.com澳门葡京 471997755.com澳门葡京 472        997755.com澳门葡京 473{
997755.com澳门葡京 474            execThread5();//设定优先级和堵塞调用
997755.com澳门葡京 475        }
997755.com澳门葡京 476
997755.com澳门葡京 477        private static void execThread6()
997755.com澳门葡京 478997755.com澳门葡京 479        997755.com澳门葡京 480{
997755.com澳门葡京 481            Console.WriteLine(“Before start thread”);
997755.com澳门葡京 482
997755.com澳门葡京 483            MyThread thr1 = new MyThread();
997755.com澳门葡京 484            MyThread thr2 = new MyThread();
997755.com澳门葡京 485
997755.com澳门葡京 486            Thread tid1 = new Thread(new ThreadStart(thr1.Thread3) );
997755.com澳门葡京 487            Thread tid2 = new Thread(new ThreadStart(thr2.Thread3) );
997755.com澳门葡京 488
997755.com澳门葡京 489            tid1.Name = “Thread 1”;
997755.com澳门葡京 490            tid2.Name = “Thread 2”;
997755.com澳门葡京 491
997755.com澳门葡京 492            try 
997755.com澳门葡京 493997755.com澳门葡京 494            997755.com澳门葡京 495{
997755.com澳门葡京 496                tid1.Start();
997755.com澳门葡京 497                tid2.Start();
997755.com澳门葡京 498            }
997755.com澳门葡京 499            catch (ThreadStateException te) 
997755.com澳门葡京 500997755.com澳门葡京 501            997755.com澳门葡京 502{
997755.com澳门葡京 503                Console.WriteLine(te.ToString() );
997755.com澳门葡京 504            }
997755.com澳门葡京 505
997755.com澳门葡京 506            tid1.Join();
997755.com澳门葡京 507            tid贰.Join(new TimeSpan(0, 0, 壹仟) );//阻塞调用线程tid1,直到线程tid二终止或通过了钦点的光阴一千ms结束.
997755.com澳门葡京 508
997755.com澳门葡京 509            Console.WriteLine(“End of Main”);
997755.com澳门葡京 510        }
997755.com澳门葡京 511
997755.com澳门葡京 512        private void button6_Click(object sender, System.EventArgs e)
997755.com澳门葡京 513997755.com澳门葡京 514        997755.com澳门葡京 515{
997755.com澳门葡京 516            execThread6();
997755.com澳门葡京 517        }
997755.com澳门葡京 518    }
997755.com澳门葡京 519
997755.com澳门葡京 520
997755.com澳门葡京 521    public class MyThread 
997755.com澳门葡京 522997755.com澳门葡京 523    997755.com澳门葡京 524{
997755.com澳门葡京 525
997755.com澳门葡京 526        public static void Thread1() 
997755.com澳门葡京 527997755.com澳门葡京 528        997755.com澳门葡京 529{
997755.com澳门葡京 530            for (int i = 0; i < 10; i++) 
997755.com澳门葡京 531997755.com澳门葡京 532            997755.com澳门葡京 533{
997755.com澳门葡京 534                Console.WriteLine(“Thread1 {0}”, i);
997755.com澳门葡京 535            }
997755.com澳门葡京 536        }
997755.com澳门葡京 537
997755.com澳门葡京 538        public static void Thread2() 
997755.com澳门葡京 539997755.com澳门葡京 540        997755.com澳门葡京 541{
997755.com澳门葡京 542            for (int i = 0; i < 10; i++) 
997755.com澳门葡京 543997755.com澳门葡京 544            997755.com澳门葡京 545{
997755.com澳门葡京 546                Console.WriteLine(“Thread2 {0}”, i);
997755.com澳门葡京 547            }
997755.com澳门葡京 548        }
997755.com澳门葡京 549        public static int CurrentRun=0;
997755.com澳门葡京 550
997755.com澳门葡京 551        public static int gsCr
997755.com澳门葡京 552997755.com澳门葡京 553        997755.com澳门葡京 554{
997755.com澳门葡京 555997755.com澳门葡京 556            get997755.com澳门葡京 557{return CurrentRun;}
997755.com澳门葡京 558997755.com澳门葡京 559            set997755.com澳门葡京 560{CurrentRun=value;}
997755.com澳门葡京 561        }
997755.com澳门葡京 562
997755.com澳门葡京 563        public  void Thread3() 
997755.com澳门葡京 564997755.com澳门葡京 565        997755.com澳门葡京 566{
997755.com澳门葡京 567             gsCr=0;
997755.com澳门葡京 568            for (int i = 0; i < 10; i++) 
997755.com澳门葡京 569997755.com澳门葡京 570            997755.com澳门葡京 571{
997755.com澳门葡京 572
997755.com澳门葡京 573                Thread thr = Thread.CurrentThread;
997755.com澳门葡京 574                Console.WriteLine(thr.Name + “=” + i+ “当前的数码: “+gsCr.ToString() );
997755.com澳门葡京 575                gsCr=i;
997755.com澳门葡京 576                try
997755.com澳门葡京 577997755.com澳门葡京 578                997755.com澳门葡京 579{
997755.com澳门葡京 580                    //Thread.Sleep(一) ;  //休眠1分钟
997755.com澳门葡京 581                    int iHour = 0;
997755.com澳门葡京 582                    int iMin = 0;
997755.com澳门葡京 583                    int iSec = 1; //-1
997755.com澳门葡京 584                    Thread.Sleep(new TimeSpan(iHour, iMin, iSec) );
997755.com澳门葡京 585                }
997755.com澳门葡京 586                catch (ArgumentException ae) 
997755.com澳门葡京 587997755.com澳门葡京 588                997755.com澳门葡京 589{
997755.com澳门葡京 590                    Console.WriteLine(ae.ToString() );
997755.com澳门葡京 591                }
997755.com澳门葡京 592                catch (ThreadInterruptedException tie) 
997755.com澳门葡京 593997755.com澳门葡京 594                997755.com澳门葡京 595{
997755.com澳门葡京 596                    Console.WriteLine(tie.ToString() );
997755.com澳门葡京 597                }
997755.com澳门葡京 598                
997755.com澳门葡京 599                
997755.com澳门葡京 600
997755.com澳门葡京 601            }
997755.com澳门葡京 602        }
997755.com澳门葡京 603    }
997755.com澳门葡京 604}
997755.com澳门葡京 605

100多行代码达成陆秒完结50万条二十八线程并发日志文件写入,50万日志文件

100多行代码达成陆秒完毕50万条多线程并发日志文件写入,支持日志文件分隔

日记工具类代码:

997755.com澳门葡京 606using
System; using System.Collections.Concurrent; using
System.Collections.Generic; using System.IO; using System.Linq; using
System.Text; using System.Threading; using System.Threading.Tasks;
namespace Utils { /// <summary> /// 写日志类 /// </summary>
public class LogUtil { #region 字段 public static object _lock = new
object(); public static string path = “D:\\log”; public static int
fileSize = 10 * 1024 * 102四; //日志分隔文件大小 private static
ConcurrentQueue<Tuple<string, string>> msgQueue = new
ConcurrentQueue<Tuple<string, string>>(); #endregion
#region 静态构造函数 static LogUtil() { Thread thread = new Thread(new
ThreadStart(() => { try { int i; List<string> list;
Tuple<string, string> tuple; while (true) { i = 0; list = new
List<string>(); while (msgQueue.TryDequeue(out tuple) && i++ <
一千0) { list.Add(tuple.Item1.PadLeft(八) + tuple.Item二); } if
(list.Count > 0) { WriteFile(list, CreateLogPath()); }
Thread.Sleep(一); } } catch { } })); thread.IsBackground = true;
thread.Start(); } #endregion #region 写文件 /// <summary> ///
写文件 /// </summary> public static void
WriteFile(List<string> list, string path) { try { if
(!Directory.Exists(Path.GetDirectoryName(path))) {
Directory.CreateDirectory(Path.GetDirectoryName(path)); } if
(!File.Exists(path)) { using (FileStream fs = new FileStream(path,
FileMode.Create)) { fs.Close(); } } using (FileStream fs = new
FileStream(path, FileMode.Append, FileAccess.Write)) { using
(StreamWriter sw = new StreamWriter(fs)) { list.ForEach(item => {
#region 日志内容 string value = string.Format(@”{0} {一}”,
Date提姆e.Now.ToString(“yyyy-MM-dd HH:mm:ss.fff”), item); #endregion
sw.WriteLine(value); }); sw.Flush(); } fs.Close(); } } catch { } }
#endregion #region 生成日志文件路线 /// <summary> ///
生成日志文件路线 /// </summary> public static string
CreateLogPath() { int index = 0; string logPath; bool bl = true; do {
index++; logPath = Path.Combine(path, “Log” +
Date提姆e.Now.ToString(“yyyyMMdd”) + (index == 一 ? “” : “_” +
index.ToString()) + “.txt”); if (File.Exists(logPath)) { FileInfo
fileInfo = new FileInfo(logPath); if (fileInfo.Length < fileSize) {
bl = false; } } else { bl = false; } } while (bl); return logPath; }
#endregion #region 写错误日志 /// <summary> /// 写错误日志 ///
</summary> public static void LogError(string log) {
msgQueue.Enqueue(new Tuple<string, string>(“[Error] “, log)); }
#endregion #region 写操作日志 /// <summary> /// 写操作日志 ///
</summary> public static void Log(string log) {
msgQueue.Enqueue(new Tuple<string, string>(“[Info] “, log)); }
#endregion } } View Code

测试代码:

997755.com澳门葡京 607using
System; using System.Collections.Generic; using System.ComponentModel;
using System.Data; using System.Drawing; using System.Linq; using
System.Text; using System.Threading; using System.Threading.Tasks; using
System.Windows.Forms; using Utils; namespace WindowsFormsApplication1 {
public partial class Form1 : Form { public Form1() {
InitializeComponent(); } private void Form1_Load(object sender,
EventArgs e) { LogUtil.path = Application.StartupPath + “\\log”;
//开始化日志路径 } private void button一_Click(object sender, EventArgs
e) { for (int n = 0; n < 10; n++) { Thread thread = new Thread(new
ThreadStart(() => { int i = 0; for (int k = 0; k < 50000; k++) {
LogUtil.Log((i++).ToString() + ”
abcdab[email protected]#$%^&dabcdabcdabcdabcdabcdabcdabcdabcd”);
} })); thread.IsBackground = true; thread.Start(); } } } } View Code

 测试截图:

997755.com澳门葡京 608

997755.com澳门葡京 609

 

100多行代码达成6秒实现50万条拾二线程并发日志文件写入,补助日志文…

public static System.Threading.Thread thread; 
  public static ce.About welcomefrm; 
 [STAThread] 
  static void Main()  
  { 
   System.Threading.ThreadStart start=new ThreadStart(ce.ceStart.splashForm); 
   thread=new Thread(start); 
   thread.Start(); 

原稿如下:

   //做要做的事 
   //运维主程序 
   System.Windows.Forms.Application.Run(new  ce.Forms.coolmain()); 
  } 
  static void splashForm() 
  { 
   ce.ceStart.welcomefrm =new About(); 
   ce.ceStart.welcomefrm.Show(); 
   Application.DoEvents(); 
   ce.ceStart.welcomefrm.Activate(); 
   thread.Join(2000); 
   ce.ceStart.welcomefrm.Close(); 
   ce.ceStart.thread.Abort(); 
  } 

   
本代码能够依据主程序加载进程来展现Splash。
    static class Program
    {
        /// <summary>
        /// 主程序的入口点在此设置,包蕴部分起头化操作,运转窗体等
        /// </summary>
        private static ApplicationContext context;
        [STAThread]      
        static void Main()
        {
            Application.EnableVisualStyles();                      
//样式设置
            Application.SetCompatibleTextRenderingDefault(false);  
//样式设置
            Splash sp = new Splash();                              
//运转窗体
            sp.Show();                                             
//呈现运转窗体
            context = new ApplicationContext();
            context.Tag = sp;
            Application.Idle += new EventHandler(Application_Idle);
//注册程序运维空闲去施行主程序窗体相应初叶化代码
            Application.Run(context);
        }
        //初阶化等待处理函数
        private static void Application_Idle(object sender, EventArgs
e)
        {
            Application.Idle -= new EventHandler(Application_Idle);
            if (context.MainForm == null)
            {
                Main mw = new Main();
                context.MainForm =mw;
                mw.init();                                 
//主窗体要做的发轫化事情在这里,该办法在主窗体里应该表明为public
                Splash sp = (Splash)context.Tag;
                sp.Close();                                
//关闭运维窗体 
                mw.Show();                                 
//运行主程序窗体
            }
        }
    }
        Splash窗体的有关属性设置:
        BackgroundImage:载入你想作为运行画面包车型客车图形;
        ControlBox:False;
        FormBorderStyle:None;
        ShowInTaskbar:False;
        StartPositon:CenterScreen.

[转] 
 
当程序在起步进度中需求花一些时日去加载能源时,大家希望程序能彰显一个接待分界面,能大约介绍软件效用的还要还是可以告诉用户该程序还在加载中,使得用户体验更团结。 
兑现如下: 

  1. 累加招待分界面包车型大巴窗体(举个例子SlpashForm),做以下调治: 
    将FormBorderStyle属性设成None,即未有窗体边框 
    将StartPosition属性设成CenterScreen,即接二连三居中 
    将TopMost属性设成True,即连续在顶端 
    将UseWaitCursor属性设成Ture,即呈现等待光标,令人认为后台还在运转 
    日增一个PictureBox控件,与招待图片大小一致,窗体的分寸也设成1致 
    日增三个ProgressBar控件,将Style设成Marquee,将MarqueeAnimationSpeed设成50 

  2. 主分界面包车型客车构造函数改成以下代码: 
    // Create thread to show splash window 
    Thread showSplashThread = new Thread(new ThreadStart(ShowSplash)); 
    showSplashThread.Start(); 

// Time consumed here 
InitializeFrame(); // 把原来构造函数中的全体代码移到该函数中 

// Abort show splash thread 
showSplashThread.Abort(); 
showSplashThread.Join(); // Wait until the thread aborted 
showSplashThread = null; 

  1. 来得SplashForm的线程函数 
    /// 
    /// Thread to show the splash. 
    /// 
    private void ShowSplash() 

    SplashForm sForm = null; 
    try 

    sForm = new SplashForm(); 
    sForm.ShowDialog(); 

    catch (ThreadAbortException e) 

    // Thread was aborted normally 
    if (_log.IsDebugEnabled) 

    _log.Debug(“Splash window was aborted normally: ” + e.Message); 


    finally 

    sForm = null; 

  2. 在主窗体的Load事件加激活自个儿的代码 
    SetForegroundWindow(Process.GetCurrentProcess().MainWindowHandle); 

在使用SetForegroundWindow以前先声飞鹤下 
// Uses to active the exist window 
[DllImport(“User32.dll”)] 
public static extern void SetForegroundWindow(IntPtr hwnd);   

对于供给加载许多零件的应用程序来讲,在开发银行的时候会非常的缓慢,或然会让用户误认为程序已经死掉,那鲜明不是大家意在观察的。固然可以在开行的时候动态的给用户一些申报音讯(比如当前正在加载的项),那么就能够使得的制止那1主题素材,并且能够给我们的应用程序增色不少。上面的图片是此代码的功力图。
997755.com澳门葡京 610 
上边是有的代码:
AppStart 类,包含Main方法

997755.com澳门葡京 611public class AppStart
997755.com澳门葡京 612{
997755.com澳门葡京 613    public AppStart()
997755.com澳门葡京 614    {
997755.com澳门葡京 615    }
997755.com澳门葡京 616    [STAThread]
997755.com澳门葡京 617    static void Main(string[] args)
997755.com澳门葡京 618    {
997755.com澳门葡京 619        //    显示Splash窗体
997755.com澳门葡京 620        Splash.Show();
997755.com澳门葡京 621
997755.com澳门葡京 622        DoStartup(args);
997755.com澳门葡京 623
997755.com澳门葡京 624        //    关闭Splash窗体
997755.com澳门葡京 625        Splash.Close();
997755.com澳门葡京 626    }
997755.com澳门葡京 627
997755.com澳门葡京 628    static void DoStartup(string[] args)
997755.com澳门葡京 629    {
997755.com澳门葡京 630        //    做需求的事情
997755.com澳门葡京 631        frmMain f = new frmMain();
997755.com澳门葡京 632        Application.Run(f);
997755.com澳门葡京 633    }
997755.com澳门葡京 634}

Splash功能类:

997755.com澳门葡京 635public class Splash
997755.com澳门葡京 636{
997755.com澳门葡京 637    static frmSplash MySplashForm = null;
997755.com澳门葡京 638    static Thread MySplashThread = null;
997755.com澳门葡京 639
997755.com澳门葡京 640    static void ShowThread() 
997755.com澳门葡京 641    {
997755.com澳门葡京 642        MySplashForm = new frmSplash();
997755.com澳门葡京 643        Application.Run(MySplashForm);
997755.com澳门葡京 644    }
997755.com澳门葡京 645
997755.com澳门葡京 646    static public void Show() 
997755.com澳门葡京 647    {
997755.com澳门葡京 648        if (MySplashThread != null)
997755.com澳门葡京 649            return;
997755.com澳门葡京 650
997755.com澳门葡京 651        MySplashThread = new Thread(new ThreadStart(Splash.ShowThread));
997755.com澳门葡京 652        MySplashThread.IsBackground = true;
997755.com澳门葡京 653        MySplashThread.ApartmentState = ApartmentState.STA;
997755.com澳门葡京 654        MySplashThread.Start();
997755.com澳门葡京 655    }
997755.com澳门葡京 656
997755.com澳门葡京 657    static public void Close() 
997755.com澳门葡京 658    {
997755.com澳门葡京 659        if (MySplashThread == null) return;
997755.com澳门葡京 660        if (MySplashForm == null) return;
997755.com澳门葡京 661
997755.com澳门葡京 662        try 
997755.com澳门葡京 663        {
997755.com澳门葡京 664            MySplashForm.Invoke(new MethodInvoker(MySplashForm.Close));
997755.com澳门葡京 665        }
997755.com澳门葡京 666        catch (Exception) 
997755.com澳门葡京 667        {
997755.com澳门葡京 668        }
997755.com澳门葡京 669        MySplashThread = null;
997755.com澳门葡京 670        MySplashForm = null;
997755.com澳门葡京 671    }
997755.com澳门葡京 672
997755.com澳门葡京 673    static public string Status 
997755.com澳门葡京 674    {
997755.com澳门葡京 675        set 
997755.com澳门葡京 676        {
997755.com澳门葡京 677            if (MySplashForm == null) 
997755.com澳门葡京 678            {
997755.com澳门葡京 679                return;
997755.com澳门葡京 680            }
997755.com澳门葡京 681
997755.com澳门葡京 682            MySplashForm.StatusInfo = value;
997755.com澳门葡京 683        }
997755.com澳门葡京 684        get 
997755.com澳门葡京 685        {
997755.com澳门葡京 686            if (MySplashForm == null) 
997755.com澳门葡京 687            {
997755.com澳门葡京 688                throw new InvalidOperationException(“Splash Form not on screen”);
997755.com澳门葡京 689            }
997755.com澳门葡京 690            return MySplashForm.StatusInfo;
997755.com澳门葡京 691        }
997755.com澳门葡京 692    }
997755.com澳门葡京 693}

Splash 界面类:

997755.com澳门葡京 694public class frmSplash : System.Windows.Forms.Form
997755.com澳门葡京 695{
997755.com澳门葡京 696    private string _StatusInfo = “”;
997755.com澳门葡京 697    
997755.com澳门葡京 698    public frmSplash()
997755.com澳门葡京 699    {
997755.com澳门葡京 700        InitializeComponent();
997755.com澳门葡京 701    }
997755.com澳门葡京 702
997755.com澳门葡京 703    private void InitializeComponent()
997755.com澳门葡京 704    {
997755.com澳门葡京 705        // 997755.com澳门葡京 706
997755.com澳门葡京 707        this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject(“pictureBox1.Image”)));        
997755.com澳门葡京 708        //997755.com澳门葡京 709
997755.com澳门葡京 710
997755.com澳门葡京 711    }
997755.com澳门葡京 712
997755.com澳门葡京 713    public string StatusInfo 
997755.com澳门葡京 714    {
997755.com澳门葡京 715        set 
997755.com澳门葡京 716        {
997755.com澳门葡京 717            _StatusInfo = value;
997755.com澳门葡京 718            ChangeStatusText();
997755.com澳门葡京 719        }
997755.com澳门葡京 720        get 
997755.com澳门葡京 721        {
997755.com澳门葡京 722            return _StatusInfo;
997755.com澳门葡京 723        }
997755.com澳门葡京 724    }
997755.com澳门葡京 725
997755.com澳门葡京 726    public void ChangeStatusText() 
997755.com澳门葡京 727    {
997755.com澳门葡京 728        try 
997755.com澳门葡京 729        {
997755.com澳门葡京 730            if (this.InvokeRequired) 
997755.com澳门葡京 731            {
997755.com澳门葡京 732                this.Invoke(new MethodInvoker(this.ChangeStatusText));
997755.com澳门葡京 733                return;
997755.com澳门葡京 734            }
997755.com澳门葡京 735
997755.com澳门葡京 736            labStatus.Text = _StatusInfo;
997755.com澳门葡京 737        }
997755.com澳门葡京 738        catch (Exception e) 
997755.com澳门葡京 739        {
997755.com澳门葡京 740            //    分外管理
997755.com澳门葡京 741        }
997755.com澳门葡京 742    }
997755.com澳门葡京 743}

主分界面类:

997755.com澳门葡京 744public class frmMain : System.Windows.Forms.Form
997755.com澳门葡京 745{
997755.com澳门葡京 746    public frmMain()
997755.com澳门葡京 747    {
997755.com澳门葡京 748        InitializeComponent();
997755.com澳门葡京 749
997755.com澳门葡京 750    Splash.Status = “状态:载入起始化模块997755.com澳门葡京 751“;
997755.com澳门葡京 752            System.Threading.Thread.Sleep(1000);
997755.com澳门葡京 753            
997755.com澳门葡京 754    Splash.Status = “状态:载入管理模块997755.com澳门葡京 755“;
997755.com澳门葡京 756            System.Threading.Thread.Sleep(1000);
997755.com澳门葡京 757
997755.com澳门葡京 758    Splash.Status = “状态:载入打印模块997755.com澳门葡京 759“;
997755.com澳门葡京 760            System.Threading.Thread.Sleep(1000);
997755.com澳门葡京 761
997755.com澳门葡京 762    Splash.Status = “状态:载入插件模块997755.com澳门葡京 763“;
997755.com澳门葡京 764            System.Threading.Thread.Sleep(1000);
997755.com澳门葡京 765
997755.com澳门葡京 766    Splash.Status = “状态:连接数据库997755.com澳门葡京 767“;
997755.com澳门葡京 768            System.Threading.Thread.Sleep(1000);
997755.com澳门葡京 769
997755.com澳门葡京 770    Splash.Close();
997755.com澳门葡京 771    }
997755.com澳门葡京 772}

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website