Lar*_*nal 1 .net c# asp.net asynchronous
我有一个在ASP.NET页面上运行的语句需要很长时间(很长一段时间我的意思是100毫秒,如果我希望这个页面快速闪亮,这个时间太长了),我不关心它什么时候执行只要执行.
实现这一目标的最佳(也是最简单)方法是什么?
最简单的方法可能是让它在线程池中执行.例如,要使这个异步:
使用系统; 使用System.Threading;
class Test
{
static void ExecuteLongRunningTask()
{
Console.WriteLine("Sleeping...");
Thread.Sleep(1000);
Console.WriteLine("... done");
}
static void Main()
{
ExecuteLongRunningTask();
Console.WriteLine("Finished");
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
将第一行更改Main为:
ThreadPool.QueueUserWorkItem(x => ExecuteLongRunningTask());
Run Code Online (Sandbox Code Playgroud)
请注意,如果您传入任何参数,它们将被捕获变量 - 在某些情况下可能会产生微妙的副作用(特别是如果您在循环中使用它).
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |