winform 高手进

sdfgdfgsdfgsfg 2012-10-08 07:43:48
private bool IsRun;
private void stop_Click(object sender, EventArgs e)
{
IsRun = false;
StreamWriter sw = File.AppendText(@"d:\myserver.txt");
sw.WriteLine(string.Format("停止:启动时间{0}", DateTime.Now));
sw.Close();
}

private void begin_Click(object sender, EventArgs e)
{
IsRun = true;
while (IsRun)
{
try
{
StreamWriter sw = File.AppendText(@"d:\myserver.txt");
sw.WriteLine(string.Format("启动:启动时间{0}", DateTime.Now));
sw.Close();
}
catch (Exception ex)
{
throw ex;
}

System.Threading.Thread.Sleep(10000);
}
}
}

当按下按钮beigin后。。为什么stop按钮无法被按下。。好像假死的状态?????????????
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizhao861018 2012-10-09
  • 打赏
  • 举报
回复
while死循环
ATM_RMB 2012-10-09
  • 打赏
  • 举报
回复
死锁了
HopeInHeart 2012-10-09
  • 打赏
  • 举报
回复
使用多线程 或者使用timer控件
Hauk 2012-10-08
  • 打赏
  • 举报
回复
这个问题就和那个服务是一样的。
要么用多线程,要么用timer去循环。

单线程一次只能做一件事,必须把循环搞完了才能接受用户输入。

http://topic.csdn.net/u/20121001/10/571320cf-1780-4c50-9e97-543328d8f471.html
tianliang1 2012-10-08
  • 打赏
  • 举报
回复
是的,你的while是一个死循环。
孟子E章 2012-10-08
  • 打赏
  • 举报
回复
while (IsRun)一直在运行啊,

要实现定时功能,使用Timer
而不是
System.Threading.Thread.Sleep(10000);

109,878

社区成员

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

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

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