读书人

自建类中多线程窗体显示的方法,该如何

发布时间: 2011-12-31 23:50:30 作者: rapoo

自建类中多线程窗体显示的方法
一个窗体类Form1 一个按钮button 一个ListBox
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 WindowsApplication1
{
public partial class Form1 : Form
{
aa AA = new aa();
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(AA.tianjia));
t.Start();
}
}
}

一个自建类 aa

using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsApplication1
{
class aa
{
public void tianjia()
{
for (int i = 0; i < 10; i++)
{
string str=i
}
}
}
}

如何在窗体上的ListBox中显示i的值?

[解决办法]
以下例子,是在楼主你的基础上改造的,窗体上有一个按钮:button1,一个列表框:listBox1

C# code
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;    public partial class Form2 : Form    {        public delegate void AddListItem(string s);//声明委托        public AddListItem myDelegate;        public Form2()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            myDelegate = new AddListItem(AddtoListBox);            aa AA = new aa(this);            Thread th = new Thread(new ThreadStart(AA.tianjia));//开辟新线程            th.Start();        }        public void AddtoListBox(string s)        {            listBox1.Items.Add(s);//给列表框添加一项        }            }    public class aa    {                Form2 frm;        public aa(Form2 frm)        {            this.frm = frm;        }        public void tianjia()         {             for (int i = 0; i  < 10; i++)             {                frm.Invoke(frm.myDelegate, new Object[] { i.ToString() });//委托调用            }         }           } 

读书人网 >C#

热点推荐