我正在使用 Asp.net MVC 4,并且我试图在用户单击页面上的链接时在后台运行一个函数。
我已经搜索和搜索,我不知道该怎么做。
我正在尝试运行的函数是 中的一个函数PhoneNumbersController
,它不返回任何内容,它只是做了很多工作。
基本上,用户输入电话号码列表(非常多的号码),然后点击 go。
然后,服务器会将所有这些电话号码保存到数据库中。然后我希望服务器运行类似这样的功能:
Foo(int accountId)
{
var account = GetAccountById(accountId);
while (account.IsRunning)
{
var Number = (from n in account.PhoneNumbers
where n.Status = "new"
select n).FirstOrDefault();
// Do some work on Number.
Thread.Sleep(1000); // I'm working with an API that limits you to 1 per second.
account = GetAccountById(accountId);
}
}
我知道,那个代码很糟糕,但这只是为了展示一个例子。
我可能会运行至少 100,000 个数字,所以我们必须能够暂停和恢复这个(因此是 while(IsRunning) 变量。我有一个暂停函数,可以将该值设置为 false。
作为以前从未使用过异步请求或多线程的人,这里最好的选择是什么,我将如何去做?
提前致谢!