函数的异步、延迟调用

延迟调用:

CALL FUNCTION ‘ZFM_UPDATE_QALS‘  IN UPDATE TASK    "STARTING NEW TASK l_taskname
        TABLES
          it_prueflos = lt_prueflos.

DATA: lw_prueflos TYPE zsqm_prueflos .

*  WAIT UP TO 3 SECONDS.
  LOOP AT it_prueflos INTO lw_prueflos.
    UPDATE qals SET zfbbs = ‘Y‘ WHERE  prueflos = lw_prueflos-prueflos .
    "   COMMIT WORK AND WAIT.
    WAIT UP TO 1 SECONDS.
  ENDLOOP.

异步调用:

      DATA l_task TYPE char10.

       CLEAR l_task.
      CALL FUNCTION ‘ZFM_NEW_TASK‘ STARTING NEW TASK l_task
        EXPORTING
          code = ‘ZMME103‘
          bs   = ‘ZGTM_INIT‘.

DATA:valutab LIKE TABLE OF rsparams .
  CALL FUNCTION ‘RS_VARIANT_CONTENTS‘
    EXPORTING
      report               = code
      variant              = bs
    TABLES
      valutab              = valutab
    EXCEPTIONS
      variant_non_existent = 1
      variant_obsolete     = 2
      OTHERS               = 3.
  IF sy-subrc <> 0.
* Implement suitable error handling here
    EXIT.
  ENDIF.

SUBMIT (code) USING SELECTION-SET bs
                     AND RETURN .

原文地址:https://www.cnblogs.com/lingxiaoj/p/12023592.html

时间: 2024-10-08 11:00:36

函数的异步、延迟调用的相关文章

Go中defer的延迟调用

// code_006_defer_usage project main.go package main import ( "fmt" ) func test(x int) { fmt.Println(100 / x) } func main() { //关键字 defer ?于延迟一个函数或者方法(或者当前所创建的匿名函数)的执行. //注意,defer语句只能出现在函数或方法的内部. fmt.Println("this is a test") defer fmt

Python_Tips[2] -&gt; 函数延迟调用与变量值

函数延迟调用与变量值 在一个循环中定义了函数f但是并未对其进行调用,在循环结束后调用,此时i值为3故最终3个函数输出均为9. 1 import dis 2 3 def count(): 4 fs = [] 5 for i in range(1,4): 6 def f(): 7 return i*i 8 fs.append(f) 9 return fs 10 11 def run(): 12 f1, f2, f3 = count() 13 # When the function called, t

python通过multiprocessing 实现带回调函数的异步调用的代码

下边代码段是关于python通过multiprocessing 实现带回调函数的异步调用的代码. from multiprocessing import Pool def f(x): if __name__ == '__main__': pool = Pool(processes=1) # Start a worker processes. result = pool.apply_async(f, [10], callback) # Evaluate "f(10)" asynchron

通过异步程序调用(APC)实现的定时功能

定时器是一个在特定时间或者规则间隔被激发的内核对象.结合定时器的异步程序调用可以允许回调函数在任何定时器被激发的时候执行.本文的例子代码显示了如何实现. 使用本定时器时,你需要把常量_WIN32_WINNT定义为0x0400,并且此常量应该在包之前定义,以确保声明合适的定时器原型函数. 通过调用CreateWaitableTimer()可以创建一个定时器,此函数返回一个指向内核对象的句柄.若定时器已经存在,你可以通过使用 OpenWaitableTimer()获得一个进程相关的句柄.无论是通过C

js-ES6学习笔记-Generator函数的异步应用

1.ES6 诞生以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段. 2.所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段. 3.JavaScript 语言对异步编程的实现,就是回调函数.所谓回调函数,就是把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候

【Unity3D】Invoke,InvokeRepeating ,Coroutine 延迟调用,周期性调用

Invoke和InvokeRepeating方法,可以实现延迟调用,和周期调用 第一个是执行一次,第二个是重复执行 void Invoke(string methodName, float time); 第一个参数是方法名(注意是字符串形式),并不是更方便的委托.第二个是延时多少秒.只执行一次. void InvokeRepeating(string methodName, float time, float repeatRate); InvokeRepeating第二个参数是延时多少秒后开始,

函数的可重入性、线程安全函数、异步信号安全函数

重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰.,常见的情况是,程序执行到某个函数foo()时,收到信号,于是暂停目前正在执行的函数,转到信号处理函数,而这个信号处理函数的执行过程中,又恰恰也会进入到刚刚执行的函数foo(),这样便发生了所谓的重入.此时如果foo()能够正确的运行,而且处理完

同步函数与异步函数

依据微软的MSDN上的解说: (1)   同步函数:当一个函数是同步执行时,那么当该函数被调用时不会立即返回,直到该函数所要做的事情全都做完了才返回. (2)   异步函数:如果一个异步函数被调用时,该函数会立即返回尽管该函数规定的操作任务还没有完成. (3) 在一个线程中分别调用上述两种函数会对调用线程有何影响呢? 当一个线程调用一个同步函数时(例如:该函数用于完成写文件任务),如果该函数没有立即完成规定的操作,则该操作会导致该调用线程的挂起(将CPU的使用权交给系统,让系统分配给其他线程使用

C#多线程编程之:异步事件调用

当一个事件被触发时,订阅该事件的方法将在触发该事件的线程中执行.也就是说,订阅该事件的方法在触发事件的线程中同步执行.由此,存在一个问 题:如果订阅事件的方法执行时间很长,触发事件的线程被阻塞,长时间等待方法执行完毕.这样,不仅影响后续订阅事件方法的执行,也影响主线程及时响应用户 的其他请求.如何处理这个问题呢?讲到此,我想您已经想到了,那就是异步事件调用. 怎样实现异步事件调用呢?如果您对事件比较了解的话,您应该知道事件的本质其实是一种MulticastDelegate(多播委托). Mult