使用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方法來實現的。