C#中怎么用线程实现把信息显示到窗体上,要一条一条的显示,谢谢各位了
1个回答
展开全部
你说的是不是在处理数据的时候显示处理的信息?
你可以用 backgroundWorker来做,这个控件里定义好了三个事件DoWork、ProgressChanged和RunWorkerCompleted,DoWork中可以写后台处理的代码并调用backgroundWorker.ReportProgress方法来报告信息,ProgressChanged中就可以根据报告的信息来显示进度和状态,RunWorkerCompleted中处理线程结束后腰处理的信息,记住要报告状态必须把WorkerReportsProgress属性设置为true
你可以用 backgroundWorker来做,这个控件里定义好了三个事件DoWork、ProgressChanged和RunWorkerCompleted,DoWork中可以写后台处理的代码并调用backgroundWorker.ReportProgress方法来报告信息,ProgressChanged中就可以根据报告的信息来显示进度和状态,RunWorkerCompleted中处理线程结束后腰处理的信息,记住要报告状态必须把WorkerReportsProgress属性设置为true
追问
恩是在处理数据时显示的信息,我想要的是处理一条后就显示这条处理的信息,处理下一条时在显示下一条处理信息。backgroundWorker没用过啊我是初学C#的不懂可以再详细点吗谢谢啦 还有我是把信息打印到界面中的ListBox上
追答
backgroundWorker在工具栏里有,直接拉到你的界面上,在VS下边会有个显示控件的条,你会看到它,然后设置它的属性,单击它的事件,就可以自动生成代码的框架了,至于详细些的信息我想我上边说的已经可以说明问题了,先要看代码示例的话可以去搜搜看。最好是自己多动动手这样学到的东西才不容易忘记
backgroundWorker1.RunWorkerAsync();//启动线程,你可以在里边放一个Objct型的参数传递给你的新线程
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
foreach(XX In XX) //或者是for也行,看你方便
{
backgroundWorker1.ReportProgress(0, "消息"); //第一个参数可以是你处理的进度
……//你用来处理的代码
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
listBox.Text += e.UserState.ToString()+"\r\n";
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
……// 处理完后你要干什么
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询