显示Time倒计时

qq457608436 2014-01-14 12:35:46
int  DownloadTime =0;
private void btnSave_Click(object sender, System.EventArgs e)
{
this.timer1.Enabled = true;
byte[] inf = WebServer.NewObject.GetUser();

System.Text.Encoding ed = System.Text.Encoding.GetEncoding("GBK");
string s = ed.GetString(inf, 0, inf.Length);
string path = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName) + "\\s_user.txt";

FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);

StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("GBK"));

sw.WriteLine(s);


sw.Close();
fs.Close();
this.timer1.Enabled = false;
}

private void timer1_Tick(object sender, EventArgs e)
{
this.lblNews.Text = "正在下载用户信息,请等待..." + DownloadTime;
DownloadTime += 1;
// this.Refresh();
}


通过WebService下载数据,然后写入TXT里面。应该数据有上万条,所以大概需要时间30秒。
在写入TXT文本的时候,我想在界面上给一个提示。所以在点击Button时启动Time控件,写入完成就关闭Time控件。 现在问题是,程序在写入文本时会停在那,不会进入Time事件。 怎么让在写入文本时,Time事件也在运行呢?
...全文
234 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamofchina 2014-01-14
  • 打赏
  • 举报
回复
timer不走,是因为线程阻塞了!!把写文件放在另起线程里面就OK了
  • 打赏
  • 举报
回复
引用 4 楼 huanggreat 的回复:
[quote=引用 2 楼 qq457608436 的回复:] [quote=引用 1 楼 huanggreat 的回复:] 这个用timer 不好吧。
那用什么?[/quote] 开个线程,实在不行 有个叫 backgrounworker 的东东,你百度下 研究下 可能速成起来容易些。[/quote] backgroundworker 写错了 不好意思
  • 打赏
  • 举报
回复
引用 2 楼 qq457608436 的回复:
[quote=引用 1 楼 huanggreat 的回复:] 这个用timer 不好吧。
那用什么?[/quote] 开个线程,实在不行 有个叫 backgrounworker 的东东,你百度下 研究下 可能速成起来容易些。
angel6709 2014-01-14
  • 打赏
  • 举报
回复
把写文件代码放到另外的线程中
qq457608436 2014-01-14
  • 打赏
  • 举报
回复
引用 1 楼 huanggreat 的回复:
这个用timer 不好吧。
那用什么?
  • 打赏
  • 举报
回复
这个用timer 不好吧。
xian_wwq 2014-01-14
  • 打赏
  • 举报
回复
使用委托,把同步操作异步化

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧