首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

哪位高手能实现这个进度条

2013-08-01 
谁能实现这个进度条void ChangeTxt(){for (int i 0 i 1000 i++){int a int.Parse(txtNum.Text)a+

谁能实现这个进度条
  void ChangeTxt()
        {
            for (int i = 0; i < 1000; i++)
            {
                int a = int.Parse(txtNum.Text);
                a++;
                txtNum.Text = a.ToString();
                Console.WriteLine(Thread.CurrentThread.Name + ",a=" + a + ",i=" + i.ToString());
            }

        }
        private void txtNum_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnProblem_Click(object sender, EventArgs e)
        {
            //ChangeTxt();UI线程自己访问可以通过。
            Thread thread = new Thread(ChangeTxt);
            thread.Name = "t1";
            thread.IsBackground = true;
            thread.Start();
            Thread thread2 = new Thread(ChangeTxt);
            thread2.Name = "t2";
            thread2.IsBackground = true;
            thread2.Start();
            MyThread Myt = new MyThread(ChangeTxt);
        }
Lz自己研究了多线程,但进度条写了几次了还不行,谁能帮我把这个进度条弄出来,最好有代码,我还要写更大的测试函数,这样可以帮助我更好的理解。 .net?进度条 线程

分享到:
[解决办法]
首先线程中不要直接访问界面控件,用委托去控制
[解决办法]
回答过一次别人的了,情况差不多
1.在你窗口构造函数里加上这一句
Control.CheckForIllegalCrossThreadCalls = false;
可以跨线程操作控件
2.this.Invoke 
[解决办法]
http://bbs.csdn.net/topics/390503835
用Invoke,最终楼主解决方法写出来了
[解决办法]
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 threadtest
{
    public partial class Form1 : Form
    {
        delegate void AddTextCallback(string text);
        AddTextCallback textCallback;

        public Form1()
        {
            InitializeComponent();
            textCallback = new AddTextCallback(AddText);
        }

        private void AddText(string text)
        {       
            if (txtNum.InvokeRequired)
            {
                this.Invoke(textCallback, text);
            }
            else
            {
                txtNum.Text = text;                
            }
        }



        void ChangeTxt()
        {
            for (int i = 0; i < 1000; i++)
            {
                int a = int.Parse(txtNum.Text);
                a++;
                AddText(a.ToString());              
            }
        }

        private void btnProblem_Click(object sender, EventArgs e)
        {
            Thread thread = new Thread(ChangeTxt);
            thread.Name = "t1";
            thread.IsBackground = true;
            thread.Start();
        }
    }
}

结贴了

[解决办法]
说好的进度条呢? 
================
多像一只只会张着嘴等待喂食的可爱的小鸟呀哪位高手能实现这个进度条
[解决办法]
不知道lz要干嘛- -
[解决办法]
void ChangeTxt()
        {
            for (int i = 0; i < 1000; i++)
            {
                int a = int.Parse(txtNum.Text);
                a++;
                txtNum.Text = a.ToString();
                Console.WriteLine(Thread.CurrentThread.Name + ",a=" + a + ",i=" + i.ToString());


                Thread.Sleep(100);
            }

        }
[解决办法]


更为悲怆地是,现在好多学生上学的那几年打酱油了,然后工作了以后才开始重新从头学习。于是你就能看到许多人有了好几年混社会上的人才有的油滑,但是技术是起步。

热点排行