StramWriter

image.png

image.png

private void button1_Click(object sender, EventArgs e) {

	string data = "ABC中文字";

	System.IO.StreamWriter writer = 

		new System.IO.StreamWriter(@"c:\\temp\\lab2.txt");

	writer.WriteLine(data);

	writer.WriteLine("Line2");

	writer.WriteLine("Line3");

	writer.Close();

}
 
private void button2_Click(object sender, EventArgs e) {

	System.IO.StreamReader r = 

		new System.IO.StreamReader(@"c:\\temp\\lab2.txt");

	string fileContent = r.ReadToEnd();

	textBox1.Text = fileContent;

	r.Close();

}
 
private void button3_Click(object sender, EventArgs e) {

	System.IO.StreamReader r =

		new System.IO.StreamReader(@"c:\\temp\\lab2.txt");
 
	do {

		string line = r.ReadLine();

		textBox1.Text += $"{line}\\r\\n";

	} while (!r.EndOfStream);
 
	r.Close();

}	
 

application.doevents()

backgroundworker

		private void button1_Click(object sender, EventArgs e) {
			for (int i = 1; i <= 100000; i++) {
				label1.Text = i.ToString();
			}
		}

SIGNALR

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Lab1030_BackgroundWorker {
	public partial class Form1 : Form {
		public Form1() {
			InitializeComponent();
		}
 
		private void button1_Click(object sender, EventArgs e) {
			for (int i = 1; i <= 1000; i++) {
				label1.Text = i.ToString();
				Application.DoEvents();
			}
		}
 
		private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) {
			for (int i = 1; i <= 1000; i++) {
				if (backgroundWorker1.CancellationPending) {
					break;
				}
				label1.Text = i.ToString();
			}
		}
 
		private void button2_Click(object sender, EventArgs e) {
			backgroundWorker1.RunWorkerAsync();
			this.Text = DateTime.Now.ToString();
		}
 
		private void button3_Click(object sender, EventArgs e) {
			backgroundWorker1.CancelAsync();
		}
	}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Lab1030_BackgroundWorker {
	public partial class Form1 : Form {
		public Form1() {
			InitializeComponent();
		}
 
		private void button1_Click(object sender, EventArgs e) {
			for (int i = 1; i <= 1000; i++) {
				label1.Text = i.ToString();
				Application.DoEvents();
			}
		}
 
		private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) {
			for (int i = 1; i <= 1000; i++) {
				if (backgroundWorker1.CancellationPending) {
					break;
				}
				label1.Text = i.ToString();
			}
		}
 
		private void button2_Click(object sender, EventArgs e) {
			backgroundWorker1.RunWorkerAsync();
			this.Text = DateTime.Now.ToString();
		}
 
		private void button3_Click(object sender, EventArgs e) {
			backgroundWorker1.CancelAsync();
		}
	}
}
  1. 按鈕 1 的功能 (button1_Click)

    private void button1_Click(object sender, EventArgs e) {
        for (int i = 1; i <= 1000; i++) {
            label1.Text = i.ToString();
            Application.DoEvents();
        }
    }
    
    
  2. 背景工作 (backgroundWorker1_DoWork)

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) {
        for (int i = 1; i <= 1000; i++) {
            if (backgroundWorker1.CancellationPending) {
                break;
            }
            label1.Text = i.ToString();
        }
    }
    
    
  3. 按鈕 2 的功能 (button2_Click)

    private void button2_Click(object sender, EventArgs e) {
        backgroundWorker1.RunWorkerAsync();
        this.Text = DateTime.Now.ToString();
    }