自建类中多线程窗体显示的方法,该如何解决
自建类中多线程窗体显示的方法
一个窗体类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
一个窗体类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() });//委托调用 } } }