运行时多个任务的基础知识

时间:2013-06-30 01:41:39

标签: c# asp.net rendering webpage

我有两件事要做

在我需要的按钮点击事件

  1. 显示动画gif
  2. 开始长任务计算或做任何需要时间的事情
  3. 虽然我只是做了测试来实现这个,因为我能想到

    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

2 个答案:

答案 0 :(得分:1)

我是通过使用onClientClick

上的图像按钮属性添加javascript代码完成的
onClientClick="setTimeOut(func, 200)"

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

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

答案 1 :(得分:0)

我很确定你倒退了。您希望TaskdoStuffshowWait为非同步。 Task中的方法是在后台运行的。