WPF使用 Task.Delay 产生延迟不成功

wangzhihongji 2015-05-18 11:09:48
///////////////以下为楼主某个事件响应函数的代码

private void Button_Click_4(object sender, RoutedEventArgs e)
{
//turning
int isornotsuccess = 0;
Task.Delay(50000);

ImformationText.Text = null;
ImformationText.Text += String.Format("\r\nwe have released if you input the wave-number,or release 100-band if you not. . . .\r\n");
ThreadPool.QueueUserWorkItem((object o) =>//这后面一长串是一个语句,一个线程
{
myout.Result = " calling the function....";
Task.Delay(200000);
int bandnum = 0;
if (Convert.ToInt32(myout.Waveband) < 128 && Convert.ToInt32(myout.Waveband)>= 0)
{
bandnum=Convert.ToInt32(myout.Waveband);
}
else
{
bandnum = 100;
}
isornotsuccess = MyTurnImageDll.MyTurnImage(exportpath, importpath, bandnum);

if (isornotsuccess == 1)
{
myout.Result = "turnning success";
}
});

}

////////////////问题
调试的时候,完全没有延迟的效果,两个Delay都没有发挥作用。。。怎么回事?
...全文
1008 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzhihongji 2015-05-19
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
延迟n秒钟执行,用定时器。如果c#很难学的话,就学javascript。至少会在这个方面有一个正确的编程方式。
引用 2 楼 Forty2 的回复:
Task.Delay(200000);本身并不延迟当前的执行。 它只是创建了一个任务,并马上返回。所以你看不到延迟。 Task.Delay具体见:https://msdn.microsoft.com/zh-cn/library/hh194873%28v=vs.110%29.aspx 你能用Task.Delay说明你用dotnet4.5,因此你可以用async await模式来简化代码: private async void Button_Click(object sender, RoutedEventArgs e) { textBlock1.Text = "hello"; await Task.Delay(2000); textBlock1.Text = "world"; }
引用 3 楼 lovelj2012 的回复:
Task.Delay 不是Thread.Sleep的概念,是延迟创建任务,不是任务执行过程中停歇
多谢,我把 async await thread.sleep timer 都用了一遍。 我想问一下,能不能通过NAMESPACE使我以后都可以用这个 timer呢?
江南小鱼 2015-05-19
  • 打赏
  • 举报
回复
Task.Delay 不是Thread.Sleep的概念,是延迟创建任务,不是任务执行过程中停歇
Forty2 2015-05-19
  • 打赏
  • 举报
回复
Task.Delay(200000);本身并不延迟当前的执行。 它只是创建了一个任务,并马上返回。所以你看不到延迟。 Task.Delay具体见:https://msdn.microsoft.com/zh-cn/library/hh194873%28v=vs.110%29.aspx 你能用Task.Delay说明你用dotnet4.5,因此你可以用async await模式来简化代码: private async void Button_Click(object sender, RoutedEventArgs e) { textBlock1.Text = "hello"; await Task.Delay(2000); textBlock1.Text = "world"; }
  • 打赏
  • 举报
回复
延迟n秒钟执行,用定时器。如果c#很难学的话,就学javascript。至少会在这个方面有一个正确的编程方式。

110,526

社区成员

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

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

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