Bir fotoğrafın yüklenmesi için kullanıcıya ihtiyacım olan bir uygulamam var. Fotoğraf çok uzun sürmemesi gereken sunucuya yüklendikten sonra, kullanıcı, "teşekkürler ... bla bla bla ..." diyerek normal bir HTML sayfası olan bir yanıtı geri almalı. Yanıtı verdikten sonra şimdi
müşteriye geri gönderilir ve mutlu yoluna gider, sunucunun bu fotoğraf üzerinde çalışmaya devam etmesini istiyorum. Ağır ve uzun zaman alacak bir şey yapması gerekiyor. Ama bu tamam, çünkü kullanıcı hiçbir şey beklemiyor. Muhtemelen farklı bir sayfada.
Bu yüzden sorum, ASP.NET ile bunu nasıl yaparım. yazıyorum uygulama ASP.NET MVC yüzdenASP.NET'e bir yanıt verdikten sonra sunucuda çalışmaya nasıl devam edebilirim? (WebForms and MVC)
//save the photo on the server
//and send viewdata saying "thanks..."
return View();
//keep doing heavy processing on the photo
gibi bir şey hayal ediyorum içindedir Ama nasıl yapıldığını bu gerçekten değil sanırım. Ayrıca, bazen ASP.NET WebForms ile çalışıyorum, bu nasıl WebForms ile de yapılır.
Teşekkür ederiz!
Ve olası bir bellek sızıntısı ile sonuçlanır. Her zaman EndInvoke'u aramalı. – leppie
Belki, ama her zaman değil. Caveat Emptor. İlk olarak, fikrini Rick Strahls blos'tan aldı http://www.west-wind.com/WebLog/posts/368975.aspx Güncel düşünme/sınama, IAsync dönüş değerini referans almazsanız, 'sızıntı' oluşmamasıdır. Temsilci bittikten sonra temizlenir. –
Daha fazla okuma üzerine, buna karşı ThreadPool.QueueUserWorkItem .. 'ye tekrardan baktığımı söylüyorum, her ikisi de iş parçacığı havuzunu kullanır ve ikincisi daha hızlıyken, her ikisi de yük altında sunucuyu çökertebilir ve farklı bir yaklaşım için çağrılabilir. –