C# 在弹出窗口中显示进度条

标签 c# .net winforms

我需要在弹出窗口中有一个进度条,而我的主线程正在做一些繁重的计算。 我使用的是 Oracle API,所有繁重的工作都是通过调用此 API 的 1 个函数完成的,因此我无法使用 backgroudworker 更新,因为我没有 API 的代码。 我试图创建一个带有 ProgressBar 和 Timer 的新表单,但是 timer_Click 事件从未被触发!!(???)

有什么想法吗??

最佳答案

while my main thread is doing some heavy calculations.

错了。切勿在 Windows 应用程序的主线程内进行任何繁重的计算,否则您的用户会讨厌您。

如果您的 API 不提供报告进度的方法,那么您最好的办法就是在计算进行时显示一些旋转动画,因为您将无法知道完成工作的确切百分比。所以把计算放在一个BackgroundWorker里面,在运行计算之前显示一些旋转动画(这本身应该在 DoWork 事件中完成)并在工作完成后隐藏动画(RunWorkerCompletedEvent)。

ProgressBar 有一个 Style 属性,您可以将其设置为 Marquee 以模拟无限进度。

关于C# 在弹出窗口中显示进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12507923/

相关文章:

c# - COM 端口被拒绝

c# - 如何添加对 SqlServerSpatial.dll 的引用

c# - ASP.NET Core 2.0 中的防伪 cookie

c# - 如何覆盖字典的 ToString()

c# - 如何使面板以编程方式滚动以显示其自动调整大小图片框

c# - 判断事件窗口是否为 WPF 窗口

c# - 回滚先前提交的事务

c# - 指定自定义序列化程序时未反序列化故障详细信息

c# - 使用 XPATH 获取 xml 文件中匹配属性条件的 n 个节点

winforms - Winform C#中DataGridView的打印