'\" '\" Copyright (c) 1990-1994 The Regents of the University of California. '\" Copyright (c) 1994-1996 Sun Microsystems, Inc. '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" '\" '\" The definitions below are for supplemental macros used in Tcl/Tk '\" manual entries. '\" '\" .AP type name in/out ?indent? '\" Start paragraph describing an argument to a library procedure. '\" type is type of argument (int, etc.), in/out is either "in", "out", '\" or "in/out" to describe whether procedure reads or modifies arg, '\" and indent is equivalent to second arg of .IP (shouldn't ever be '\" needed; use .AS below instead) '\" '\" .AS ?type? ?name? '\" Give maximum sizes of arguments for setting tab stops. Type and '\" name are examples of largest possible arguments that will be passed '\" to .AP later. If args are omitted, default tab stops are used. '\" '\" .BS '\" Start box enclosure. From here until next .BE, everything will be '\" enclosed in one large box. '\" '\" .BE '\" End of box enclosure. '\" '\" .CS '\" Begin code excerpt. '\" '\" .CE '\" End code excerpt. '\" '\" .VS ?version? ?br? '\" Begin vertical sidebar, for use in marking newly-changed parts '\" of man pages. The first argument is ignored and used for recording '\" the version when the .VS was added, so that the sidebars can be '\" found and removed when they reach a certain age. If another argument '\" is present, then a line break is forced before starting the sidebar. '\" '\" .VE '\" End of vertical sidebar. '\" '\" .DS '\" Begin an indented unfilled display. '\" '\" .DE '\" End of indented unfilled display. '\" '\" .SO '\" Start of list of standard options for a Tk widget. The '\" options follow on successive lines, in four columns separated '\" by tabs. '\" '\" .SE '\" End of list of standard options for a Tk widget. '\" '\" .OP cmdName dbName dbClass '\" Start of description of a specific option. cmdName gives the '\" option's name as specified in the class command, dbName gives '\" the option's name in the option database, and dbClass gives '\" the option's class in the option database. '\" '\" .UL arg1 arg2 '\" Print arg1 underlined, then print arg2 normally. '\" '\" '\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. .if t .wh -1.3i ^B .nr ^l \n(.l .ad b '\" # Start an argument description .de AP .ie !"\\$4"" .TP \\$4 .el \{\ . ie !"\\$2"" .TP \\n()Cu . el .TP 15 .\} .ta \\n()Au \\n()Bu .ie !"\\$3"" \{\ \&\\$1 \\fI\\$2\\fP (\\$3) .\".b .\} .el \{\ .br .ie !"\\$2"" \{\ \&\\$1 \\fI\\$2\\fP .\} .el \{\ \&\\fI\\$1\\fP .\} .\} .. '\" # define tabbing values for .AP .de AS .nr )A 10n .if !"\\$1"" .nr )A \\w'\\$1'u+3n .nr )B \\n()Au+15n .\" .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n .nr )C \\n()Bu+\\w'(in/out)'u+2n .. .AS Tcl_Interp Tcl_CreateInterp in/out '\" # BS - start boxed text '\" # ^y = starting y location '\" # ^b = 1 .de BS .br .mk ^y .nr ^b 1u .if n .nf .if n .ti 0 .if n \l'\\n(.lu\(ul' .if n .fi .. '\" # BE - end boxed text (draw box now) .de BE .nf .ti 0 .mk ^t .ie n \l'\\n(^lu\(ul' .el \{\ .\" Draw four-sided box normally, but don't draw top of .\" box if the box started on an earlier page. .ie !\\n(^b-1 \{\ \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .el \}\ \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .\} .fi .br .nr ^b 0 .. '\" # VS - start vertical sidebar '\" # ^Y = starting y location '\" # ^v = 1 (for troff; for nroff this doesn't matter) .de VS .if !"\\$2"" .br .mk ^Y .ie n 'mc \s12\(br\s0 .el .nr ^v 1u .. '\" # VE - end of vertical sidebar .de VE .ie n 'mc .el \{\ .ev 2 .nf .ti 0 .mk ^t \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' .sp -1 .fi .ev .\} .nr ^v 0 .. '\" # Special macro to handle page bottom: finish off current '\" # box/sidebar if in box/sidebar mode, then invoked standard '\" # page bottom macro. .de ^B .ev 2 'ti 0 'nf .mk ^t .if \\n(^b \{\ .\" Draw three-sided box if this is the box's first page, .\" draw two sides but no top otherwise. .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .\} .if \\n(^v \{\ .nr ^x \\n(^tu+1v-\\n(^Yu \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c .\} .bp 'fi .ev .if \\n(^b \{\ .mk ^y .nr ^b 2 .\} .if \\n(^v \{\ .mk ^Y .\} .. '\" # DS - begin display .de DS .RS .nf .sp .. '\" # DE - end display .de DE .fi .RE .sp .. '\" # SO - start of list of standard options .de SO .SH "STANDARD OPTIONS" .LP .nf .ta 4c 8c 12c .ft B .. '\" # SE - end of list of standard options .de SE .fi .ft R .LP See the \\fBoptions\\fR manual entry for details on the standard options. .. '\" # OP - start of full description for a single option .de OP .LP .nf .ta 4c Command-Line Name: \\fB\\$1\\fR Database Name: \\fB\\$2\\fR Database Class: \\fB\\$3\\fR .fi .IP .. '\" # CS - begin code excerpt .de CS .RS .nf .ta .25i .5i .75i 1i .. '\" # CE - end code excerpt .de CE .fi .RE .. .de UL \\$1\l'|0\(ul'\\$2 .. .TH after 3tcl 7.5 Tcl "Tcl Built-In Commands" .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME after \- 延遲一段時間之後執行一個命令 .SH 總覽 SYNOPSIS \fBafter \fIms\fR .sp \fBafter \fIms \fR?\fIscript script script ...\fR? .sp \fBafter cancel \fIid\fR .sp \fBafter cancel \fIscript script script ...\fR .sp \fBafter idle \fR?\fIscript script script ...\fR? .sp \fBafter info \fR?\fIid\fR? .BE .SH 描述 DESCRIPTION .PP 這個命令被用於延遲執行程式或者在將來某時在後臺執行一個命令。它有幾種形式,依靠給命令的第一個引數(來區分): .TP \fBafter \fIms\fR \fIMs\fR 必須是整數,給出以毫秒為單位的時間。命令在睡眠(sleep) \fIms\fR 毫秒之後返回。當命令在睡眠的時候,應用不響應事件。 .TP \fBafter \fIms \fR?\fIscript script script ...\fR? 在這種形式中,命令立即返回,它安排一個 Tcl 命令在 \fIms\fR 毫秒之後作為事件處理器(handler)來執行。在給定時間,命令將被精確的執行一次。延遲的命令是透過連線(concatenate)所有的 \fIscript\fR 引數形成的,這與 \fBconcat\fR 命令的方式(fashion)一樣。命令將在全域性層次上執行(在任何 Tcl 過程的上下文之外)。在執行延遲命令時如果有錯誤發生,則使用 \fBbgerror\fR 機制來報告錯誤。\fBafter\fR 命令返回一個識別符號,\fBafter cancel\fR 命令用它來取消延遲的命令。 .TP \fBafter cancel \fIid\fR 取消前面安排的延遲命令的執行。\fIId\fR 指示要取消那條命令;它必須是前面 \fBafter\fR 命令返回的。如果用 \fIid\fR 給出的命令已經執行了則 \fBafter cancel\fR 命令不起作用。 .TP \fBafter cancel \fIscript script ...\fR 這個命令也取消一個延遲命令的執行。用空格分隔符來連線 \fIscript\fR 引數(如同在 \fBconcat\fR 命令中那樣)。如果有一條等待的命令與這個字串匹配,則取消它並永不執行;如果當前沒有這樣的等待命令則 \fBafter cancel\fR 命令不起作用。 .TP \fBafter idle \fIscript \fR?\fIscript script ...\fR? 用空格分隔符連線 \fIscript\fR 引數(如同在 \fBconcat\fR 命令中那樣),並被作為一個空閒回撥(idle callback)來安排結果指令碼在以後執行。下次進入事件迴圈並且沒有事件要處理(的時候),這個指令碼被精確的執行一次。命令返回一個識別符號,\fBafter cancel\fR 命令用它來取消延遲的命令。在執行延遲命令時如果有錯誤發生,則使用 \fBbgerror\fR 機制來報告錯誤。 .TP \fBafter info \fR?\fIid\fR? 這個命令返回關於存在的事件處理器的資訊。如果沒提供 \fIid\fR 引數,命令為所有透過 \fBafter\fR 命令給這個直譯器建立的事件處理器返回一個識別符號的列表。如果提供了 \fIid\fR,它指定一個現存的處理器;\fIid\fR 必須是以前呼叫 \fBafter\fR 返回的值並且仍未被觸發或取消。這種情況下命令返回一個有兩個元素的列表。列表的第一個元素是與 \fIid\fR 關聯的指令碼,第二個元素要麼是 \fBidle\fR 要麼是 \fBtimer\fR,指示它是那種型別的事件處理器。 .LP 命令的 \fBafter \fIms\fR 和 \fBafter idle\fR 形式假定應用是事件驅動的: 除非應用進入事件迴圈否則延遲命令將不被執行。在通常不事件驅動的應用中,如 \fBtclsh\fR,用 \fBvwait\fR 和 \fBupdate\fR 命令進入事件迴圈。 .SH "參見 SEE ALSO" bgerror .SH 關鍵字 KEYWORDS cancel, delay, idle callback, sleep, time .SH [中文版維護人] .B 寒蟬退士 .SH [中文版最新更新] .B 2001/06/21 .SH 《中國 Linux 論壇 man 手冊頁翻譯計劃》: .B http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR