日期:2014-05-18 浏览次数:20957 次
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication3
{
public partial class Form1 : Form
{
private Thread thread;
public Form1()
{
InitializeComponent();
//Control.CheckForIllegalCrossThreadCalls = false;
}
delegate void mydel();
public void dele()
{
//Thread.Sleep(1000);
mydel d = new mydel(fun);
label1.Invoke(d);
//this.Invoke(d);
}
public void fun()
{
while (true)
{
int x = Convert.ToInt32(label1.Text);
x++;
label1.Text = Convert.ToString(x);
Thread.Sleep(1000);
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (thread.IsAlive)
thread.Abort();
}
private void button1_Click(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(fun));
label1.Text = "0";
thread.Start();
button1.Enabled = false;
button2.Enabled = true;
button3.Enabled = false;
button4.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
thread.Suspend();
button1.Enabled = false;
button2.Enabled = false;
button3.Enabled = true;
button4.Enabled = false;
}
private void button3_Click(object sender, EventArgs e)
{
thread.Resume();
button1.Enabled = false;
button2.Enabled = true;
button3.Enabled = false;
button4.Enabled = true;
}
private void button4_Click(object sender, EventArgs e)
{
if (thread.IsAlive)
{
thread.Abort();
label1.Text = "";
button1.Enabled = true;
button2.Enabled = false;
button3.Enabled = false;
button3.Enabled = false;
}
}
}
}
using System;
using System.Threading;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private ManualResetEvent _ManualResetEvent = new ManualResetEvent(true);
public Form1()
{
InitializeComponent();
}
private Boolean _bStop = false;
delegate void mydel();
public void dele()
{
mydel d = new mydel(fun);
label1.Invoke(d);
}
public void fun()
{
while (!_bStop)
{
label1.Invoke(new MethodInvoker(delegate()
{
int x = Convert.ToInt32(label1.Text);
x++;
label1.Text = Convert.ToString(x);
}));
_ManualResetEvent.WaitOne();
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
_ManualResetEvent.Set();
_ManualResetEvent.Close();
_ManualResetEvent = null;
}
private void button1_Click(object sender, EventArgs e)
{
_bStop = false;
Thread thread = new Thread(new ThreadStart(fun));
label1.Text = "0";