asp.net多线程问题
写一个winform的程序,界面显示五个文本框,两个按钮,一个开始按钮,一个结束按钮,点击开始按钮同时启动五个线程,点击结束按钮能够正常结束退出。点击开始按钮的时候五个文...
写一个winform的程序,界面显示五个文本框,两个按钮,一个开始按钮,一个结束按钮,点击开始按钮同时启动五个线程,点击结束按钮能够正常结束退出。
点击开始按钮的时候五个文本框同时显示值:
第一个文本框递增显示1-100000,然后递减显示
第二个文本框递增显示1-200000,然后递减显示
第三个文本框递增显示1-300000,然后递减显示
第四个文本框递增显示1-400000,然后递减显示
第五个文本框递增显示1-500000,然后递减显示 展开
点击开始按钮的时候五个文本框同时显示值:
第一个文本框递增显示1-100000,然后递减显示
第二个文本框递增显示1-200000,然后递减显示
第三个文本框递增显示1-300000,然后递减显示
第四个文本框递增显示1-400000,然后递减显示
第五个文本框递增显示1-500000,然后递减显示 展开
3个回答
展开全部
和简单一个程序,先thread[]=new tread[5];
在一个thread[0]写方法.,在运行。
依次类推,结束时候,把所有进程都about掉
下面是源码
Thread[] ths = new Thread[5];
public Form1()
{
InitializeComponent();
}
//开始进程
private void button1_Click(object sender, EventArgs e)
{
OpenTread();
}
protected void OpenTread()
{
ths[0] = new Thread(new ParameterizedThreadStart(Add));
ths[0].Start(1000);
ths[1] = new Thread(new ParameterizedThreadStart(Add));
ths[1].Start(2000);
ths[2] = new Thread(new ParameterizedThreadStart(Add));
ths[2].Start(3000);
ths[3] = new Thread(new ParameterizedThreadStart(Add));
ths[3].Start(4000);
ths[4] = new Thread(new ParameterizedThreadStart(Add));
ths[4].Start(5000);
}
protected void Add(object j)
{
int k = Convert.ToInt32(j);
switch (k)
{
case 1000:
for (int i = 0; i < k; i++)
{
textBox1.Text = i.ToString();
}
break;
case 2000:
for (int i = 0; i < k; i++)
{
textBox2.Text = i.ToString();
}
break;
case 3000:
for (int i = 0; i < k; i++)
{
textBox3.Text = i.ToString();
}
break;
case 4000:
for (int i = 0; i < k; i++)
{
textBox4.Text = i.ToString();
}
break;
case 5000:
for (int i = 0; i < k; i++)
{
textBox5.Text = i.ToString();
}
break;
default:
break;
}
}
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
}
//结束进程
private void button2_Click(object sender, EventArgs e)
{
foreach (Thread th in ths)
{
if (th != null)
{
th.Abort();
}
}
}
在一个thread[0]写方法.,在运行。
依次类推,结束时候,把所有进程都about掉
下面是源码
Thread[] ths = new Thread[5];
public Form1()
{
InitializeComponent();
}
//开始进程
private void button1_Click(object sender, EventArgs e)
{
OpenTread();
}
protected void OpenTread()
{
ths[0] = new Thread(new ParameterizedThreadStart(Add));
ths[0].Start(1000);
ths[1] = new Thread(new ParameterizedThreadStart(Add));
ths[1].Start(2000);
ths[2] = new Thread(new ParameterizedThreadStart(Add));
ths[2].Start(3000);
ths[3] = new Thread(new ParameterizedThreadStart(Add));
ths[3].Start(4000);
ths[4] = new Thread(new ParameterizedThreadStart(Add));
ths[4].Start(5000);
}
protected void Add(object j)
{
int k = Convert.ToInt32(j);
switch (k)
{
case 1000:
for (int i = 0; i < k; i++)
{
textBox1.Text = i.ToString();
}
break;
case 2000:
for (int i = 0; i < k; i++)
{
textBox2.Text = i.ToString();
}
break;
case 3000:
for (int i = 0; i < k; i++)
{
textBox3.Text = i.ToString();
}
break;
case 4000:
for (int i = 0; i < k; i++)
{
textBox4.Text = i.ToString();
}
break;
case 5000:
for (int i = 0; i < k; i++)
{
textBox5.Text = i.ToString();
}
break;
default:
break;
}
}
private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
}
//结束进程
private void button2_Click(object sender, EventArgs e)
{
foreach (Thread th in ths)
{
if (th != null)
{
th.Abort();
}
}
}
展开全部
k
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
纯粹的伸手党.....你给500分我给你写一个.
15分...
15分...
更多追问追答
追问
你说说思路就行 我没多少分 只要你能说出详细思路我给一百 我看了看就那么多分 没法啊 大哥
追答
这个真没有什么思路,实在是最简单的东西了.
开一个线程,显示需要显示的内容
点关闭的时候,关闭所有的子线程,然后退出
像这样的问题,你稍微用点心,根本不用来这里提问.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询