将控件返回给用户后,继续在后台递归执行函数

时间:2012-05-29 06:28:23

标签: asp.net-mvc multithreading recursion

我在.Net MVC中开发了一个twitter应用程序,可以在指定时间自动发送消息。

应用程序的核心功能基本上包含一个递归函数post post tweets并继续调用自己,直到数据库字段设置为false,它将在下次运行时检查。

问题是,当我通过url运行应用程序或函数时,浏览器进入“等待响应...”模式,同时函数在后台以递归循环正确运行指定的时间直到浏览器返回页面未找到错误,我认为这是浏览器中设置的默认时间,它们在网站未在指定时间内返回响应后停止连接,此后浏览器停止连接该功能时也停止执行。

我想要的是让这个函数在后台递归调用自身,但也将控件返回到界面,直到我点击关闭按钮并更改status字段。数据库为false,类似于多线程?

所以基本没有,我如何让一个函数在后台运行,并将控件返回到前端接口。  请帮助。

public ActionResult twitter_post(string msg)
    {

        bool status = //retrieve from database;

        while(status==true){
            //post Tweets;
            twitter_post(msg);
        }
        return View();

    }

1 个答案:

答案 0 :(得分:0)

您可以使用jquery timer插件,通过json调用服务器端函数,直到获得所需的结果。

        $(document).everyTime('60s', function (i) {
               // Send your JSON call Here
         }, 1000);

此功能将在每60秒后继续调用您的功能。当你需要出局时,然后使用

停止它
         $(document).stopTime();