使用Progress對象可以為CodeSmith生成代碼的過程顯示一個進度條,這對於生成比較費時的模板操作是非常有用的,如果你使用Visual Studio,可以在狀態欄中顯示一進度條: 使用進度條的方法是通過CodeTemplate對象的Progress屬性對象,首先是設置Progress對象的最大值和步長,本例通過一個簡單的循環來模擬一個費時的操作: [csharp] <%@ 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方法來實現的。