运行时多任务的基础知识

本文关键字:基础知识 多任务 运行时 | 更新日期: 2023-09-27 18:20:29

我有两件事要做

在按钮点击事件上,我需要

  1. 显示动画gif
  2. 启动长任务来计算或做任何需要时间的事情

尽管我只是做了一些测试来实现这一点,因为我认为

void dothings()
{
  showWait();
  doStuff();
}

然后

void dothings()
{
    Task task1 = new Task(() => showWait());
    task1.Start();
  doStuff();
}
public void showWait()
{
    var img = "<img src='"images/Earth3_movie.gif'" />";
    DivSerpRes.InnerHtml = img;
}

仍然仅当doStuff()最后完成页面渲染动画。。。

我怎样才能把它做好?

编辑

使用asp.net 4.0 Webforms

运行时多任务的基础知识

我使用ClientClick 上的image按钮属性添加了一个javascript代码

onClientClick="setTimeOut(func, 200)"
function func(){
 var Thectrl = document.getElementById('DivWaitImg');
 Thectrl.style.display = "block";
}

setTimeOut与pagepostback事件有关,该事件冻结页面,因此需要等待200ms

我很确定你已经落后了。您希望使TaskdoStuff,使showWait为非异步。Task中的方法是在后台运行的方法。