【发布时间】:2012-09-30 08:03:51
【问题描述】:
如果我在处理任务之前打开WaitCursor,然后将其恢复为默认值,我经常会得到这种代码模式:
try {
Cursor.Current = Cursors.WaitCursor;
MyProcessingTask();
}
catch (Exception ex) {
Cursor.Current = Cursors.Default;
MessageBox.Show(ex.ToString());
}
finally { Cursor.Current = Cursors.Default; }
我需要在catch 块中包含Cursor.Current = Cursors.Default;,以便为MessageBox 提供一个默认光标以供使用。
有没有更好的方法来编写此代码而无需编写两个 Cursor.Current = Cursors.Default; 语句?
【问题讨论】:
-
您可以删除 finally 块并在
MyProcessingTask();调用之后使用Cursor.Current = Cursors.Default;语句;否则我认为你会坚持两次。 -
您是否尝试将
try ... finally语句放入try ... catch语句的try块中? -
@Tim:如果我把它放在
MyProcessingTask();之后,那么如果MyProcessingTask()引发异常,我仍然需要将它也放在catch块中,不是吗? -
@O.R.Mapper:你能详细说明一下吗?
-
@CJ7:我已将其添加为答案。
标签: c# error-handling cursor try-catch-finally