草庐IT

工程进度

全部标签

c# - 如何在繁忙的循环中显示进度?

我有一个从外部源读取大量数据的循环。该过程大约需要20秒,我想向用户显示进度。我不需要任何花哨的进度条,所以我选择将我的进度绘制在一个标签中,上面写着“Step1/1000”,然后更改为“Step2/1000”等。我的代码看起来像这样://"count"isthenumberofstepsintheloop,//IreceiveitinpreviouscodeStringcountLabel="/"+count.ToString();for(i=0;i但是,在该分析过程中,屏幕“卡住”并且进度不显示为正在推进。我从我过去在C++中理解这种行为,在那里我可能会有一个单独的线程显示一个进度

c# - WPF 模态进度窗口

如果这个问题被回答了很多次,我深表歉意,但我似乎找不到适合我的答案。我想创建一个模态窗口,在我的应用程序执行长时间运行的任务时显示各种进度消息。这些任务在单独的线程上运行,我能够在流程的不同阶段更新进度窗口上的文本。跨线程通信一切正常。问题是我无法让窗口仅位于其他应用程序窗口(不是计算机上的每个应用程序)之上,保持在顶部,防止与父窗口交互,并仍然允许工作继续。这是我到目前为止尝试过的:首先,我的初始窗口是一个自定义类,它扩展了Window类并具有更新消息框的方法。我在早期创建了启动类的一个新实例,并根据需要显示/隐藏它。在最简单的情况下,我实例化窗口并对其调用.Show()://fro

嵌入式软件工程师面试题收录(1)

最近收集了许多嵌软的面试题,内容都是在很多文章中剪下来的!1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60*60*24*365)UL 使用#define预处理器指令需要注意的是,不能以分号结束,并且尽量不要自己计数,要懂得预处理器可以帮我们计数常数表达式的值。#define使用比较严谨,考虑到使用场合,括号一般很常用。这个表达式会使16位机的整数型溢出,UL代表unsignedlong。2.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。#define MIN(A,B) ((A)这里用到三重条

c# - 通过进度条显示执行进度

我有一个愚蠢的问题,但我卡住了。我正在从我的代码中执行一个存储过程过程需要时间,所以为此我显示了一个进度条,它显示了执行的进度,但是存储过程执行并且没有任何我增加进度条的值。这是我的代码voidbtnYes_Click(objectsender,EventArgse){if(DialogResult.Yes==MessageBox.Show("Areyousure","",MessageBoxButtons.YesNo)){try{dbDataEntitiesdb=newdbDataEntities();stringmyquery="DECLARE@return_valueintEXE

C#进度条改变颜色

我正在尝试更改进度条的颜色,我将其用作密码强度验证器。例如,如果所需密码较弱,则进度条将变为黄色,如果为中等,则变为绿色。强,橙色.非常强,红色。就是这样。这是我的密码强度验证器代码:varPassChar=txtPass.Text;if(txtPass.Text.Length=6)pgbPass.ForeColor=Color.Yellow;if(txtPass.Text.Length>=12)pgbPass.ForeColor=Color.YellowGreen;if(Regex.IsMatch(PassChar,@"\d+"))pgbPass.ForeColor=Color.Gr

c# - 执行 SQL 查询时显示进度条

我想在从SQL数据库读取数据时通知用户我决定创建一个带有进度条的表单,但它不起作用——可能是因为需要一个线程。我想以编程方式创建表单ProgressBarpb=newProgressBar();pb.MarqueeAnimationSpeed=30;pb.Style=ProgressBarStyle.Marquee;pb.Dock=DockStyle.Fill;progressForm.ClientSize=newSize(200,50);progressForm.FormBorderStyle=FormBorderStyle.FixedDialog;progressForm.Star

c# - 使用 TPL 的 Parallel.ForEach 时跟踪进度

跟踪以下进度的最佳方式是什么longtotal=Products.LongCount();longcurrent=0;doubleProgress=0.0;Parallel.ForEach(Products,product=>{try{varprice=GetPrice(SystemAccount,product);SavePrice(product,price);}finally{Interlocked.Decrement(refthis.current);}});我想将进度变量从0.0更新到1.0(当前/总计),但我不想使用任何会对并行性产生不利影响的东西。

c# - 使用 Parallel.ForEach 时跟踪进度

我正在重构我的程序以使用Parallel.ForEach。之前,当我使用常规for循环时,我使用Dispatcher更新WPF进度条,通过将当前数组索引除以数组大小来显示完成百分比。对于并行的foreach循环,这不会正确显示,即%随机跳跃,这是预期的。如何为每个循环更新并行的WPF进度条,以便跟踪已完成的迭代次数? 最佳答案 正如SLaks所建议的,您应该只增加进度条值,而不是将其设置为您从Parallel.For方法获得的当前索引。但是,我会认真考虑使用一些比在每次迭代时向UI线程发送消息更便宜的方法。如果您有大量迭代,那么每次

c# - 如何在 WPF 中创建类似 Windows 8 样式的进度环?

我想在Windows8ProgressRing等桌面应用程序中显示进度。这种类型的进度在安装时或Windows启动时显示,但此控件可以在许多应用程序中使用,因为它非常干净和现代,但我不知道如何实现。进度环图像在这里。请看图片:我可以知道如何使用XAML或代码编写代码吗?我已经看到在WPFProgressRing控件中不存在,所以我必须转到一些自定义控件。想法链接或建议我该如何继续。 最佳答案 使用MahApps.Metro会简单得多,但下面给出了一个简单的类似Metro的等待指示器,显示了如何在XAML中完成它。它本质上是同一个Pa

c# - C#中的工程符号?

是否有任何代码(或内置函数)允许以工程符号输出float?例如,1.5e-4将显示为150µ,5e-3将显示为5m。 最佳答案 这可能需要重构:privatestaticstringToEngineeringNotation(thisdoubled){doubleexponent=Math.Log10(Math.Abs(d));if(Math.Abs(d)>=1){switch((int)Math.Floor(exponent)){case0:case1:case2:returnd.ToString();case3:case4:ca