using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace 线程调用多个参数的方法
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 声明一个集合对象,存储代入线程的参数
List<int> list = new List<int>();
Thread th = null;
private void button1_Click(object sender, EventArgs e)
{
th = new Thread(Add); // 创建线程
th.IsBackground = true; // 设为后台线程
// 线程只能传递一个参数,如果想传入多个参数,可以将参数放入集合中。
th.Start(list);
}
// 线程调用函数中的参数只能是object类型。
public void Add(object list)
{
List<int> list2 = (List<int>)list;
int sum = 0;
for (int i = 0; i < list2.Count; i++)
{
sum += list2[i];
}
textBox1.Text = sum.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
// 设置取消线程间访问的限制
Control.CheckForIllegalCrossThreadCalls = false;
// 将线程需要的参数添加到集合中
list.Add(22);
list.Add(33);
list.Add(44);
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace 线程调用多个参数的方法
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 声明一个集合对象,存储代入线程的参数
List<int> list = new List<int>();
Thread th = null;
private void button1_Click(object sender, EventArgs e)
{
th = new Thread(Add); // 创建线程
th.IsBackground = true; // 设为后台线程
// 线程只能传递一个参数,如果想传入多个参数,可以将参数放入集合中。
th.Start(list);
}
// 线程调用函数中的参数只能是object类型。
public void Add(object list)
{
List<int> list2 = (List<int>)list;
int sum = 0;
for (int i = 0; i < list2.Count; i++)
{
sum += list2[i];
}
textBox1.Text = sum.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
// 设置取消线程间访问的限制
Control.CheckForIllegalCrossThreadCalls = false;
// 将线程需要的参数添加到集合中
list.Add(22);
list.Add(33);
list.Add(44);
}
}
}