Ответ 1
Ответ на этот вопрос очень сильно зависит от того, что вы имеете в виду, перезагружая некоторую информацию в проекте ASP.NET MVC. Это не явная заявленная проблема, и как таковая, более чем очевидно, она не может иметь четко сформулированного ответа.
Итак, если мы предположим, что этим вы хотите периодически опросить некоторые действия контроллера и обновить информацию в представлении, вы можете использовать setInterval javascript для периодического опроса сервера путем отправки запроса AJAX и обновления пользовательского интерфейса:
window.setInterval(function() {
// Send an AJAX request every 5s to poll for changes and update the UI
// example with jquery:
$.get('/foo', function(result) {
// TODO: use the results returned from your controller action
// to update the UI
});
}, 5000);
Если, с другой стороны, вы имеете в виду выполнение некоторой задачи на сервере в обычные периоды, вы можете использовать метод RegisterWaitForSingleObject:
var waitHandle = new AutoResetEvent(false);
ThreadPool.RegisterWaitForSingleObject(
waitHandle,
// Method to execute
(state, timeout) =>
{
// TODO: implement the functionality you want to be executed
// on every 5 seconds here
// Important Remark: This method runs on a worker thread drawn
// from the thread pool which is also used to service requests
// so make sure that this method returns as fast as possible or
// you will be jeopardizing worker threads which could be catastrophic
// in a web application. Make sure you don't sleep here and if you were
// to perform some I/O intensive operation make sure you use asynchronous
// API and IO completion ports for increased scalability
},
// optional state object to pass to the method
null,
// Execute the method after 5 seconds
TimeSpan.FromSeconds(5),
// Set this to false to execute it repeatedly every 5 seconds
false
);
Если вы имеете в виду что-то еще, не стесняйтесь предоставлять более подробную информацию по вашему вопросу.