小编int*_*bit的帖子

如何让.NET控制台应用程序运行?

考虑一个Console应用程序,它在一个单独的线程中启动一些服务.它需要做的就是等待用户按Ctrl + C将其关闭.

以下哪项是更好的方法?

static ManualResetEvent _quitEvent = new ManualResetEvent(false);

static void Main() {
    Console.CancelKeyPress += (sender, eArgs) => {
        _quitEvent.Set();
        eArgs.Cancel = true;
    };

    // kick off asynchronous stuff 

    _quitEvent.WaitOne();

    // cleanup/shutdown and quit
}
Run Code Online (Sandbox Code Playgroud)

或者,使用Thread.Sleep(1):

static bool _quitFlag = false;

static void Main() {
    Console.CancelKeyPress += delegate {
        _quitFlag = true;
    };

    // kick off asynchronous stuff 

    while (!_quitFlag) {
        Thread.Sleep(1);
    }

    // cleanup/shutdown and quit
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading sleep manualresetevent

95
推荐指数
5
解决办法
4万
查看次数

如何在ASP.NET MVC中实现插页式"加载..."页面?

我有一个SearchController,其动作可以执行一些长时间运行的搜索并返回结果页面.搜索可能需要1到60秒.搜索的URL是以下格式的HTTP GET请求:http://localhost/Search?my=query&is=fancy

我正在寻找的体验类似于那里的许多旅游网站.我想展示一个中间的"正在加载......"页面,理想情况是:

  1. 用户可以重新加载页面而无需重新启动搜索
  2. 后端搜索完成后,用户将重定向到结果
  3. 禁用JavaScript的浏览器的体验会降低
  4. 后退按钮/浏览器历史记录不应包含此插页式页面.
  5. 在短搜索(1秒)的情况下,它对获得结果或体验的时间没有显着影响(显着丑陋的页面闪烁,无论如何)

这些都是不错的选择.我对所有想法持开放态度!谢谢.

c# asp.net-mvc performance user-interface progressive-enhancement

6
推荐指数
2
解决办法
6512
查看次数