2016-03-27 16 views
0

Bir ASP.NET programının arkasındaki kod, tek sayfalık bir sipariş raporu yazdırmaya yarayan bir yürütülebilir dosyayı çağırır. aşağıdaki gibi çalıştırılabilir denir:System.Diagnostics.Process yürütmesini nasıl hızlandırıyorsunuz?

Process.Start("PrintOrder.exe", nOrderNumber.ToString()); 

Ama kullanıcı Gönder hatırı sayılır yavaşlama tıkladığında (yukarıdaki çizgiyi yorum yaparsanız yürütme çok hızlıdır).

İşlemi hızlandırmanın bir yolu var mı?

cevap

1

İşletim sistemi başlangıç ​​kodunun yavaş olup olmadığını veya başka engellerin olup olmadığını görmek için kesin bir ölçüm yapmak iyi bir fikir olabilir.

İşletim sistemi ile ilgili bir sorun varsa, kod davranışında yapısal değişiklikler yapmadan gerçekten çok şey yapılamaz. Aklıma gelen seçeneklerden:

  • Yap operasyon asenkron (yangın ve unut sadece arka planda işlemi çalıştırmak, stil) - bu infaz size sonucunu gerekmez durumunda çalışır;
  • "PrintOrder.exe" işlevini her zaman WCF adlı kanallar kanalıyla veya herhangi bir şekilde istekleri çalıştırarak ve alırken yapın.
+0

Dmitriy, mesajınız için teşekkür ederiz. ASP.NET uygulamasından değil, komut isteminde PrintOrder.exe dosyasını çalıştırdığımda çok hızlı çalıştığını biliyorum. İşlemi senkronize olmayana kadar yürütme sonucuna ihtiyacım yok. İşlemi asenkronize hale nasıl getiriyorsunuz? ASP.NET tarafında veya PrintOrder.exe tarafında yapılan bir şey mi? – Hidalgo

+0

@Hidalgo Task.Factory.StartNew (() => Process.Start ("PrintOrder.exe", nOrderNumber.ToString())); –

+0

Teşekkür ederim, Dmitriy. Önerinizi takip edeceğim. – Hidalgo

İlgili konular