使用Progress對象可以為CodeSmith產生代碼的過程顯示一個進度條,這對於產生比較費時的模板操作是非常有用的,如果你使用Visual Studio,可以在狀態列中顯示一進度條:
使用進度條的方法是通過CodeTemplate對象的Progress屬性對象,首先是設定Progress對象的最大值和步長,本例通過一個簡單的迴圈來類比一個費時的操作:
[csharp] view plain copy print ? <%@ Template Language="C#" TargetLanguage="Text" Debug="False" %> <%@ Import Namespace="System.Threading" %> This is a progress demo. <% SimulateProgress(); %> <script runat="template"> public void SimulateProgress(){ Progress.MaximumValue = 25; Progress.Step = 1; for(int i=0;i<25;i++){ Progress.PerformStep(); Thread.Sleep(100); Response.WriteLine("step {0} ",i); } } </script>
<%@ Template Language="C#" TargetLanguage="Text" Debug="False" %><%@ Import Namespace="System.Threading" %>This is a progress demo.<% SimulateProgress(); %><script runat="template">public void SimulateProgress(){Progress.MaximumValue = 25;Progress.Step = 1; for(int i=0;i<25;i++){ Progress.PerformStep(); Thread.Sleep(100); Response.WriteLine("step {0} ",i); }}</script>
讓進度條前進一步是通過Progress對象的PerfStep方法來實現的。
本例下載