Exemplo n.º 1
0
        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            log.Debug("Started");



            var task = Task.Factory.StartNew(() =>
            {
                IISNotifier notif = new IISNotifier();
                notif.Started();
                log.Debug("Task started");

                Thread.Sleep(60000);

                log.Debug("Task ended");



                notif.Finished();
            });

            log.Debug("Task waiting...");
            task.Wait();
            log.Debug("Task finished...");

            return(View());
        }
        //public static void DoWork(object parameters)
        //{
        //    var par = (ExecParameter)parameters;
        //    UnicodeEncoding uniEncoding = new UnicodeEncoding();

        //    int maxCount = 60;
        //    for (int i = 0; i < maxCount; i++)
        //    {
        //        string message = $", {i}";

        //        par.OutStream.Write(uniEncoding.GetBytes(message), 0, uniEncoding.GetBytes(message).Length);
        //        log.Debug(i.ToString());
        //        Task.Delay(1000).Wait();
        //    }

        //    log.Debug("Finish");
        //    par.Notif.Finished();
        //}


        // http://localhost:12084/api/file
        public HttpResponseMessage Get()
        {
            //var man = ApplicationManager.GetApplicationManager();
            //var notif = (IISNotifier)man.CreateObject(HostingEnvironment.ApplicationHost, typeof(IISNotifier));
            //var notif = new IISNotifier();
            //notif.Started();

            //IISNotifier Notifier = new IISNotifier();
            //Notifier.Started();

            log.Debug("---------------------------------------------");

            var notif = new IISNotifier();

            notif.Started();

            var result = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new PushStreamContent((outputStream, httpContext, transportContext) =>
                {
                    log.Debug("PushStreamContent started");

                    //HostingEnvironment.QueueBackgroundWorkItem(token =>
                    //{
                    log.Debug("Task started");

                    UnicodeEncoding uniEncoding = new UnicodeEncoding();

                    int maxCount = 60;
                    for (int i = 0; i < maxCount; i++)
                    {
                        string message = $", {i}";

                        outputStream.Write(uniEncoding.GetBytes(message), 0, uniEncoding.GetBytes(message).Length);
                        log.Debug(i.ToString());
                        Thread.Sleep(1000);
                    }

                    log.Debug("Finish");
                    notif.Finished();
                    //});
                }),
            };

            result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
            result.Content.Headers.ContentEncoding.Add("utf-8");
            return(result);
        }
        // http://localhost:12084/api/file
        public HttpResponseMessage Get()
        {
            //var man = ApplicationManager.GetApplicationManager();
            //var notif = (IISNotifier)man.CreateObject(HostingEnvironment.ApplicationHost, typeof(IISNotifier));
            //var notif = new IISNotifier();
            //notif.Started();

            //IISNotifier Notifier = new IISNotifier();
            //Notifier.Started();

            log.Debug("---------------------------------------------");

            var notif = new IISNotifier();
            notif.Started();

            log.Debug("Task started");

            int maxCount = 60;
            for (int i = 0; i < maxCount; i++)
            {
                string message = $", {i}";

                //outputStream.Write(uniEncoding.GetBytes(message), 0, uniEncoding.GetBytes(message).Length);
                log.Debug(i.ToString());
                Thread.Sleep(1000);
            }

            log.Debug("Finish");
            notif.Finished();

            var result = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = null
            };

            result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
            result.Content.Headers.ContentEncoding.Add("utf-8");
            return result;
        }