当前位置:编程学习 > C#/ASP.NET >>

c#中关于线程的简单问题

单击窗体上的button1按纽,textbox1会慢慢显示指定的内容,比如

for(int i=0;i<5000;i++)

textbox1.text+="a";
不用线程,显示会卡住,请问怎么用线程实现?好像还要用委托。

追问:你的代码我调试了,没有我说的效果,我把textbox2改成多行显示,就卡住了。我要的效果是字符一个个显示,而且速度可以在代码中调,好像要用线程的Sleep方法。在线等。
答案:1个注意的地方,其他线程不能直接操作控件,所以要用委托
 
using System.Threading;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Thread t = new Thread(TWork);
            t.Start();
            t.IsBackground = true;
        }
        public delegate void timer();
        public void TWork()
        {
            if (this.IsHandleCreated)
            {
                textBox1.BeginInvoke(new timer(SetControl));
            }
        }
        public void SetControl()
        {
            for (int i = 0; i < 5000; i++)
                textBox1.Text += "a";
        }
    }
}
 

for(int i=0;i<5000;i++){

textbox1.text+="a";

Application.DoEvents();


或者用线程再调用委托
System.Threading.Thread.Sleep(5000);
TextBox1.Text = "123456";

上一个:C#求书学习
下一个:C#获取网页信息

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,