异步调用进度条窗体弹出加载数据
Posted wangyonglai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步调用进度条窗体弹出加载数据相关的知识,希望对你有一定的参考价值。
异步调用进度条窗体弹出
public partial class LoadProgressBar : Form
{
int losttime = 0;
/// <summary>
/// 是否可以关闭窗体
/// </summary>
public bool ClosedFlag = false;
public LoadProgressBar()
{
InitializeComponent();
}
public void SetProgressMaxValue(int value, string name)
{
progressBar1.Maximum = value;
progressBar1.Value = 0;
nameLab.Text = name;
losttime = 0;
Console.WriteLine("Maximum:" + value);
}
public void SetValue(int value, int totalValue)
{
try
{
losttime = 0;
this.progressBar1.BeginInvoke(new Action(() =>
{
progressBar1.Maximum = totalValue;
int tempvalue = progressBar1.Value + value;
if (tempvalue < progressBar1.Maximum)
{
speedLab.Text = tempvalue.ToString("D2") + "/" + totalValue.ToString("D2");
progressBar1.Value = tempvalue;
}
Console.WriteLine("tempvalue:" + tempvalue);
}));
}
catch
{ }
}
private void LoadProgressBar_FormClosing(object sender, FormClosingEventArgs e)
{
if (ClosedFlag == false)
{
if (losttime > 30)
{
this.DialogResult = DialogResult.Cancel;
return;
}
if (MessageBox.Show("正在导出文件,是否要中断?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.DialogResult = DialogResult.Cancel;
}
else
{
e.Cancel = true;
//this.DialogResult = DialogResult.Cancel;
}
}
else
{
this.DialogResult = DialogResult.OK;
}
}
private void closed_Pic_Click(object sender, EventArgs e)
{
this.Close();
}
private void timer1_Tick(object sender, EventArgs e)
{
losttime++;
if (losttime > 30)
{
this.Close();
}
}
}
以上是关于异步调用进度条窗体弹出加载数据的主要内容,如果未能解决你的问题,请参考以下文章
Android移动应用开发之使用异步调用进度条及实现幻灯片切换效果