.net C# 跨越线程调用窗体上的控件一个完整的例子
来源:互联网 发布:农村淘宝前景怎么样 编辑:程序博客网 时间:2024/06/05 14:43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing.Drawing2D;
using System.Threading;
namespace Test
...{
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private Thread myThread;
private void RunsOnWorkerThread()
...{
for (int i = 0; i < 100; i++)
...{
ShowProgress(Convert.ToString(i) + "%", i);
Thread.Sleep(100);
}
}
public void ShowProgress(string msg, int percentDone)
...{
// Wrap the parameters in some EventArgs-derived custom class:
System.EventArgs e = new MyProgressEvents(msg, percentDone);
object[] pList = ...{ this, e };
BeginInvoke(new MyProgressEventsHandler(UpdateUI), pList);
}
private delegate void MyProgressEventsHandler(object sender, MyProgressEvents e);
private void UpdateUI(object sender, MyProgressEvents e)
...{
this.label1.Text = e.Msg;
this.progressBar1.Value = e.PercentDone;
}
public class MyProgressEvents : EventArgs
...{
public string Msg;
public int PercentDone;
public MyProgressEvents(string msg, int per)
...{
Msg = msg;
PercentDone = per;
}
}
//开始线程
private void button1_Click(object sender, EventArgs e)
...{
myThread = new Thread(new ThreadStart(RunsOnWorkerThread));
myThread.Start();
}
private void button2_Click(object sender, EventArgs e)
...{
if (myThread != null && myThread.IsAlive)
myThread.Suspend();//线程挂起
myThread.Priority = ThreadPriority.Lowest;
}
private void button3_Click(object sender, EventArgs e)
...{
if (myThread != null && myThread.IsAlive)
myThread.Resume();//继续线程
}
private void button4_Click(object sender, EventArgs e)
...{
if (myThread != null && myThread.IsAlive)
myThread.Abort();//线程终止
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing.Drawing2D;
using System.Threading;
namespace Test
...{
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
private Thread myThread;
private void RunsOnWorkerThread()
...{
for (int i = 0; i < 100; i++)
...{
ShowProgress(Convert.ToString(i) + "%", i);
Thread.Sleep(100);
}
}
public void ShowProgress(string msg, int percentDone)
...{
// Wrap the parameters in some EventArgs-derived custom class:
System.EventArgs e = new MyProgressEvents(msg, percentDone);
object[] pList = ...{ this, e };
BeginInvoke(new MyProgressEventsHandler(UpdateUI), pList);
}
private delegate void MyProgressEventsHandler(object sender, MyProgressEvents e);
private void UpdateUI(object sender, MyProgressEvents e)
...{
this.label1.Text = e.Msg;
this.progressBar1.Value = e.PercentDone;
}
public class MyProgressEvents : EventArgs
...{
public string Msg;
public int PercentDone;
public MyProgressEvents(string msg, int per)
...{
Msg = msg;
PercentDone = per;
}
}
//开始线程
private void button1_Click(object sender, EventArgs e)
...{
myThread = new Thread(new ThreadStart(RunsOnWorkerThread));
myThread.Start();
}
private void button2_Click(object sender, EventArgs e)
...{
if (myThread != null && myThread.IsAlive)
myThread.Suspend();//线程挂起
myThread.Priority = ThreadPriority.Lowest;
}
private void button3_Click(object sender, EventArgs e)
...{
if (myThread != null && myThread.IsAlive)
myThread.Resume();//继续线程
}
private void button4_Click(object sender, EventArgs e)
...{
if (myThread != null && myThread.IsAlive)
myThread.Abort();//线程终止
}
}
}
- .net C# 跨越线程调用窗体上的控件一个完整的例子
- c#如何跨越线程调用窗体上的控件 GOOD
- c#如何跨越线程调用窗体上的控件(转)
- 跨越线程调用窗体上的控件
- 如何跨越线程调用窗体上的控件
- 如何跨越线程调用窗体上的控件
- (转载)如何跨越线程调用窗体上的控件
- 如何跨越线程调用窗体上的控件
- 如何跨越线程调用窗体上的控件
- 跨越线程调用窗体上控件的方法
- 如何跨越线程调用窗体上的控件
- 如何跨越线程调用窗体上的控件
- 如何跨越线程调用窗体上的控件
- 如何跨越线程调用窗体上的控件
- C# 实现一个窗体调用另一个窗体的控件
- C#跨线程调用窗体控件的问题
- C#跨线程调用窗体控件的问题
- C#的窗体控件调用.exe窗体
- C++程序设计之四书五经
- 黑客六次网络大战
- 关于IE、Firefox、Opera页面呈现异同
- C语言实现CRC算法实例改进
- 查看MySQL的table信息
- .net C# 跨越线程调用窗体上的控件一个完整的例子
- 针对equalizer(v0.3)中eqPly的分析
- 浅谈C++程序员的学习
- 被误解的C++——螺蛳壳里做道场
- 防火墙技术
- 移除旧版本的系统内核!
- 转贴]一些算法题目
- 取得下一天和上一天的日期
- 计算机网络知识大全.