m文件中函数的执行顺序
?
?? ? 當進行多個GUI協同工作時,要用到uiwait和uiresume函數。此時,理解函數的執行順序此時是很關鍵的。
?
?? ? 首先理解uiwait和uiresume函數的作用。
?? ? uiwait函數:阻塞m文件的執行,直到uiresume解除這種阻塞;
?? ? uiresume函數:解除uiwait函數對m文件的阻塞。
?
?
?? ? 首先明確一點:回調函數(callback)應該不受uiwait的阻塞。(我自己從實踐中猜想的)
?? ? 這意味,雖然m文件的執行被阻塞,但并不會出現“按鈕按下無反應”等類似情況。
?
?? ? 一般,uiwait用在OpeningFcn中,如果解除阻塞,接下來應該執行OutputFcn,然后就沒有要執行的函數了。
?
?? ? 如果點擊了右上角的“×”圖標想要關閉GUI,那么觸發執行CloseRequestFcn(這是figure的一個屬性)函數,然后才是OutputFcn,再然后就沒有要執行的函數了。
?
?? ? 準確的來講,OpeningFcn是m文件中第一個Callback,它在GUI對用戶可見之前、部件(component)創建之后(即各個CreateFcn運行之后)運行;OutputFcn向命令行返回運行時產生的結果,它在OpeningFcn返回控制權(即OpeningFcn運行完畢)之后、控制權返回給命令行之前運行。
?
?? ? 可見,如果要刪除一個figure,可以再CloseRequestFcn和OutputFcn中調用delete函數(如果必須的話(有時默認的就很好),這點很重要。而且要注意在CloseRequestFcn和OutputFcn不要試圖兩次delete某個figure,否則會報錯。)
?? ? 當然,對于這些的理解不要忘記一個“對象”的概念。如果在函數的執行過程中,沒有用delete函數刪除對象,那么對象就會存在,和uiwait和uiresume無關
?
?
轉載于:https://www.cnblogs.com/nktblog/archive/2012/05/04/2482820.html
總結
以上是生活随笔為你收集整理的m文件中函数的执行顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: StringUtil工具类:
- 下一篇: CorelDRAWX4的VBA插件开发(