C# 再谈WinForm中ProgressBar从并行更改
已经有很多人写过了。但在我看来并不清楚 我需要根据并行流中提供的演算修改WinForm中的ProgressBar。代码如下:C# 再谈WinForm中ProgressBar从并行更改,c#,winforms,C#,Winforms,已经有很多人写过了。但在我看来并不清楚 我需要根据并行流中提供的演算修改WinForm中的ProgressBar。代码如下: namespace my_space { class myLongCalculus { static int iCount; doSomeLongJob() { cycle1
namespace my_space
{
class myLongCalculus
{
static int iCount;
doSomeLongJob()
{
cycle1
{
cycle2
{
iCount += number
// Here should be ProgressBar in Form1 modified !
}
}
}
public class Form1 : Form
{
public Form1()
{
int iMax = 6;
ProgressBar pb = new ProgressBar();
pb.Max = Maximum;
for(int i=0, i<iMax; i++)
listOfObjects.Add(new myLongCalculus(i));
Parallel.For(0, iMax, i =>
{
listOfObjects[i].doSomeLongJob();
});
}
}
}
名称空间我的空间
{
类微积分
{
静态整数计数;
doSomeLongJob()
{
循环1
{
周期2
{
i计数+=数字
//这里应该是修改了Form1中的ProgressBar!
}
}
}
公开课表格1:表格
{
公共表格1()
{
intimax=6;
ProgressBar pb=新的ProgressBar();
pb.Max=最大值;
对于(int i=0,i
{
对象列表[i].doSomeLongJob();
});
}
}
}
我尝试了各种技巧,包括线程、调用,但结果相同:
在第一次更改ProgressBar后,并行流终止并返回到调用程序
任何想法都将受到欢迎我真的希望看到“各种技巧线程,调用”您尝试过的以及真实代码中不起作用的内容。给出了真实代码。只有我没有编写的周期。iCount+=number//这里应该是Form1中的进度条修改!如果我尝试访问此处的进度条“…Form1中的已修改”并行流终止并返回给调用者。