这是我第一次体验C#,我正在尝试创建一个进度条,每秒增加一个值(程序的一部分,它从另一个对象接收当前值并将其设置为进度条)。
我的简化对象来源:
public delegate void LoadingProgressChanged(int percents);
public event LoadingProgressChanged loadingProgressChanged;
public void Enable()
{
loadingTimer = new Timer(1000);
loadingTimer.Elapsed += new ElapsedEventHandler(IncreaseLoadingPercentage);
loadingTimer.Start();
}
private void IncreaseLoadingPercentage(object source, EventArgs e)
{
loadedPercents += getLoadingPercentsPerSecond();
loadingProgressChanged(loadedPercents);
}
表格来源: 在构造函数
中router.loadingProgressChanged += new AbstractRouter.LoadingProgressChanged(percentageChanged);
百分比身体变化
public void percentageChanged(int percs)
{
progressBar1.Value = percs;
}
我收到错误
发生了'System.InvalidOperationException'类型的异常 System.Windows.Forms.dll但未在用户代码中处理
附加信息:跨线程操作无效:控制 'progressBar1'从线程以外的线程访问 创建于。
如果存在此异常的处理程序,则程序可能是安全的 继续进行。
我理解为什么会发生这种情况:似乎在计时器线程中调用了percentageChanged表单。但是如何正确实现呢?谢谢!
答案 0 :(得分:1)
尝试这样的事情:
$(".imgcon").lightGallery();