2013-08-02 5 views
1

Я хотел бы решить конкретный вопрос, который у меня есть, поэтому этот вопрос более похож на обсуждение.Async Page Asp.net webforms threads

Basiclly, есть проект asp.net с WebForm1.aspx с кнопкой на нем. Как только Clien нажмите кнопку нить является запуск и inmediatlly то, есть Response.Redirect так:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    BL.Class1 cd = new BL.Class1(); 
    cd.Run(); // or cd.AsyncRun(); 
    Response.Redirect("~/WebForm2.aspx",true); 
} 

Конечно Evrything должно быть нестатический. Бизнес-логика класс выглядит Somthing так:

public class Class1 
{ 
    public int Signal = 0; 
    // non blocking Run... the webserver continues with this process running backwards 
    public void RunAsync() 
    { 
     Signal = 0; 
     new System.Threading.Thread(() => 
     { 
      System.Threading.Thread.Sleep(100000); // simulate heavy task! 
     } 
     ).Start(); 
     Signal = 1; 
    } 

    // blocking Run... 
    public void Run() 
    { 
     Signal = 0; 
     System.Threading.Thread.Sleep(100000); // simulate heavy task! 
     Signal = 1; 
    } 
} 

Имея это в виду, здесь обсуждение: - В WebForm2.aspx я хотел бы объединить либо от клиента (JavaScript/Ajax/нестатический вебсервис) или сервер для клиента (registerscript с помощью scriptmanager), чтобы переменная «Signal» была установлена ​​на «True» после тяжелого процесса .. и сообщите пользователю (через div с красным фоном на зеленый цвет) или что-то еще. - Если да, то каким будет лучший метод, если я не хочу использовать SignalR или Node.js или WebApi или WebSockets jet? - Есть ли у вас документ, книга, где можно объяснить такую ​​ситуацию в проекте MVC?

Вся информация, действительно благодарная за помощь в решении этой проблемы.

уш,

ответ

1

Звучит как простое метаобновление будет делать трюк, или JavaScript, который перезагружает страницу на заданный интервал времени - нет необходимости что-либо фантазии, если вы не хотите.

Просто визуализируйте страницу (серверную) либо с красным, либо с зеленым div в зависимости от статуса завершения тяжелой работы.