如何在运行时间长的程序执行期间加一个提示窗体或进度条提示,否则就像死机了一样,一点击鼠标,就出现“没有响应” 如何在运行时间长的程序执行期间加一个提示窗体或进度条提示,否则就像死机了一样,一点击鼠标,就出现“没有响应”进度条只要会动就行,表示提示程序正在执行中。如果用线程解决,请给一个简单例子,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 初学者可以从通用的 BackgroundWorker 学起。 backgroundworkder通过简单地将几个接口功能封装起来,初学者就可以不必动脑子自己写和设计十好几条代码了,这个简单的机制/控件可以作为一个编程模式拿来就用。 可以使用多线程+委托:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Diagnostics;using System.Runtime.InteropServices;using System.Threading;namespace WindowsFormsApplication6{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } Thread drawThread = null; delegate void drawDelegate(int i); //开启子线程 private void btnTest_Click(object sender, EventArgs e) { closeThread(); drawThread = new Thread(new ThreadStart(draw)); drawThread.IsBackground = true; drawThread.Start(); } //draw子线程,循环调用test函数 private void draw() { try { for (int i = 0; i < 100000000; i++) { test(i); Thread.Sleep(100); } } catch (System.Exception e1) { return; } closeThread(); } //test函数,向textBox中添加数据 private void test(int i) { if (textBox1.InvokeRequired) { drawDelegate d = new drawDelegate(test); Invoke(d, new object[] {i }); //委托调用函数 } else { textBox1.AppendText(i.ToString()+"\r\n"); } } //结束子线程 private void closeThread() { if (drawThread != null) { if (drawThread.IsAlive) { drawThread.Abort(); } } } //窗体关闭时,关闭子线程 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { closeThread(); } }} SQL语句的问题各位大侠 急求帮助啊 frameset如何直接显示Excel页面而不显示对话框 求教高手!!!!关于模糊查询和datagridview绑定的问题! 关于多语言的问题 水晶报表疑问? 关于接口的一个问题 。net 编译环境中 提示信息怎么突然都没有了??? 系统报错原因求助 请教关于DataGrid和ScrollBar的问题!! 入门问题,大家帮帮忙 如何扫描C盘下所有doc文件,并打成压缩包呢? 问一个有关提高数据库安全性的问题!
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} Thread drawThread = null;
delegate void drawDelegate(int i); //开启子线程
private void btnTest_Click(object sender, EventArgs e)
{
closeThread(); drawThread = new Thread(new ThreadStart(draw));
drawThread.IsBackground = true;
drawThread.Start();
} //draw子线程,循环调用test函数
private void draw()
{
try
{
for (int i = 0; i < 100000000; i++)
{
test(i);
Thread.Sleep(100);
}
}
catch (System.Exception e1)
{
return;
} closeThread();
} //test函数,向textBox中添加数据
private void test(int i)
{
if (textBox1.InvokeRequired)
{
drawDelegate d = new drawDelegate(test);
Invoke(d, new object[] {i }); //委托调用函数
}
else
{
textBox1.AppendText(i.ToString()+"\r\n");
}
} //结束子线程
private void closeThread()
{
if (drawThread != null)
{
if (drawThread.IsAlive)
{
drawThread.Abort();
}
}
}
//窗体关闭时,关闭子线程
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
closeThread();
}
}
}