using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int k1 = 0;
double k2 = 0;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
k1++;
textBox1.Text = k1.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
}
//打开采集线程//最简单的异步线程
private void button1_Click(object sender, EventArgs e)
{
Thread thread11 = new Thread(new ThreadStart(openf));
thread11.SetApartmentState(ApartmentState.STA); //重点
thread11.Start();
this.Invoke(new dCollect(this.Collect));
}
private void openf()
{
OpenFileDialog fdlg = new OpenFileDialog();
if (fdlg.ShowDialog() == DialogResult.OK)
{
textBox2.Text = "1000";
}
}
private delegate void dCollect();
private void Collect()
{
for (int i = 0; i < 1000; i++)
{
k2 = k2 * Math.PI / 11.06 + 100 + 200 + 300 + 400 + 500;
k2 = k2 / Math.PI;
k2 = k2 + i;
textBox2.Text = k2.ToString("f3");
}
}
//采集过程//返回结果k2
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 1000000000; i++)
{
k2 = k2 * Math.PI / 11.06 + 100 + 200 + 300 + 400 + 500;
k2 = k2 / Math.PI;
k2 = k2 + i;
}
}
//采集完成//控件显示k2
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
textBox2.Text = k2.ToString("f3");
}
}
}