Async Controller asp.net MVC 2.0 - PullRequest
       23

Async Controller asp.net MVC 2.0

0 голосов
/ 27 ноября 2009

В настоящее время MS выпускает бета-версию asp.net MVC 2.0 с AsyncController, но об этом очень мало документов, кроме одного: http://msdn.microsoft.com/en-us/library/ee728598(VS.100).aspx

Пример от Microsoft показывает, что в процессе создания AsyncController использовалось событие.

Однако есть такие люди, как я, которые не используют никаких событий для работы с Decrement и хотят перенести контроллер из Sync в Async ... Так есть ли способ справиться с этим?

Пример, у меня есть:

Image orgImage = _db.getImagebyGUID(guid);
string date = orgImage.CREATE_DATE.toString();
Image newImage = _db.getImagebyGUID(guid2);
string date2 = newImage .CREATE_DATE.toString();

есть ли какой-нибудь возможный способ использовать Async без события, потому что есть много классов, которые не реализуют обратный вызов события ...

Большое спасибо

1 Ответ

1 голос
/ 27 ноября 2009

Вы всегда можете поместить этот код в метод, создать делегат для этого метода и вызвать его асинхронно:

public string DoWork()
{
    Image orgImage = _db.getImagebyGUID(guid);
    string date = orgImage.CREATE_DATE.toString();
    Image newImage = _db.getImagebyGUID(guid2);
    string date2 = newImage .CREATE_DATE.toString();
    return date + date2;
}

И код вызова:

AsyncManager.OutstandingOperations.Increment();
Func<string> doWorkHandler = DoWork;
doWorkHandler.BeginInvoke(ar =>
{
    var handler = (Func<string>)ar.AsyncState;
    AsyncManager.Parameters["date"] = handler.EndInvoke(ar);
    AsyncManager.OutstandingOperations.Decrement();
}, doWorkHandler);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...