C#如何给在运行中的线程传值
如果一个线程已经开始运行了,我想改变其中的值,该怎么做?比如我form1里有个按钮,按了之后listbox会每隔一秒显示一个数System.Timers.Timertte...
如果一个线程已经开始运行了,我想改变其中的值,该怎么做?
比如我form1里有个按钮,按了之后listbox会每隔一秒显示一个数
System.Timers.Timer ttest = new System.Timers.Timer();
private void button2_Click_2(object sender, EventArgs e)
{
testclass t = new testclass();
Thread mythread = new Thread(() => t.fun());
mythread.Start();
}
然后在testclass的函数是这样的
class testclass
{
private delegate void listbox(string str);
System.Timers.Timer ttest = new System.Timers.Timer();
public int i = 0;
private void additem(string str)
{
Form1.logbox1.Items.Add(str);
}
public void fun()
{
for (int j = 1; j < 10; j++)
{
i++;
Thread.Sleep(1000);
Form1.logbox1.Invoke(new listbox(additem), i.ToString());
}
}
}
如果我想在中途改变i的值,我该怎么做?跪谢 展开
比如我form1里有个按钮,按了之后listbox会每隔一秒显示一个数
System.Timers.Timer ttest = new System.Timers.Timer();
private void button2_Click_2(object sender, EventArgs e)
{
testclass t = new testclass();
Thread mythread = new Thread(() => t.fun());
mythread.Start();
}
然后在testclass的函数是这样的
class testclass
{
private delegate void listbox(string str);
System.Timers.Timer ttest = new System.Timers.Timer();
public int i = 0;
private void additem(string str)
{
Form1.logbox1.Items.Add(str);
}
public void fun()
{
for (int j = 1; j < 10; j++)
{
i++;
Thread.Sleep(1000);
Form1.logbox1.Invoke(new listbox(additem), i.ToString());
}
}
}
如果我想在中途改变i的值,我该怎么做?跪谢 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询