如何使Perl的system()不阻塞?

索拉·施里瓦斯塔瓦(Saurabh Shrivastava)

在我的PERL代码中,我需要使用Windows命令提示符执行一些操作,例如打开记事本,即

system("start notepad");

现在,我观察到直到上一个语句完成,perl才会移至下一个语句。有什么方法可以在将命令发送给系统后,将perl移至下一条语句,而不检查系统任务是否结束。

我编写了一个示例代码来解释我的问题。我在这里显示了每个任务之后的时间。

use Time::HiRes qw(time);
use POSIX qw(strftime);

####################printing time code starts###########
$t = time;
$date = strftime "%Y%m%d %H:%M:%S", localtime $t;
$date .= sprintf ".%03d", ($t-int($t))*1000; # without rounding
print "Statement 1 executed at $date\n";
#######################printing time code ends###########
####################printing time code starts###########
$t = time;
$date = strftime "%Y%m%d %H:%M:%S", localtime $t;
$date .= sprintf ".%03d", ($t-int($t))*1000; # without rounding
print "Statement 2 executed at $date\n";
#######################printing time code ends#####
system("start notepad");
####################printing time code starts###########
$t = time;
$date = strftime "%Y%m%d %H:%M:%S", localtime $t;
$date .= sprintf ".%03d", ($t-int($t))*1000; # without rounding
print "Statement 3 executed at $date\n";

我的输出是:

Statement 1 executed at 20150101 19:09:37.614
Statement 2 executed at 20150101 19:09:37.614
Statement 3 executed at 20150101 19:09:37.647

显然,陈述2和陈述3之间存在很大差异,我想避免这种情况。请给个建议。

注意:启动记事本只是一个例子,我可能想将100MB文件从1个文件夹复制到另一个文件夹,并且我不希望perl在向系统发送命令后等待。

口渴

在win32 perl上,您可以执行以下操作:

system( 1, "start notepad" );

告诉系统立即返回。这在perlport中有记录

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使方法返回启动的Task而不阻塞?

来自分类Dev

如何实现阻塞调用而不浪费CPU时间?

来自分类Dev

如何使pthread在后台工作而不阻塞外壳?

来自分类Dev

如何生成一个表单而不阻塞主线程?

来自分类Dev

在Perl / Tkx中运行外部命令而不阻塞GUI(Windows)

来自分类Dev

使Javascript不阻塞

来自分类Dev

当os.system(“ sleep ...”)时,Python如何阻塞信号?

来自分类Dev

Perl非阻塞用户输入

来自分类Dev

Play框架:如何在不阻塞的情况下修改响应正文?

来自分类Dev

如何在不阻塞的情况下启动CompletableFuture,并在完成后执行某些操作?

来自分类Dev

如何重复请求直到一个成功而不阻塞节点?

来自分类Dev

如何在不阻塞UI的情况下反复调用方法?

来自分类Dev

如何在不阻塞的情况下从执行器捕获RuntimeExceptions?

来自分类Dev

通过按回车而不阻塞来退出while循环。如何改善这种方法?

来自分类Dev

如何避免在不阻塞的情况下并发执行耗时的任务?

来自分类Dev

如何在不阻塞主线程的情况下使用Qt-Dbus绑定

来自分类Dev

在Linux上,select()如何确定何时可以不阻塞地写入TCP / IP连接?

来自分类Dev

如何在python子进程中运行而不阻塞父进程?

来自分类Dev

如何在不阻塞主线程的情况下同步调用异步函数?

来自分类Dev

Oboe C ++线程-如何在不阻塞的情况下读写队列

来自分类Dev

如何在JmsListener内调用反应式服务而不阻塞?

来自分类Dev

如何在QGraphicsScene中移动1000个项目而不阻塞UI

来自分类Dev

如何避免在不阻塞的情况下并发执行耗时的任务?

来自分类Dev

如何在不阻塞终端的情况下从Linux终端运行程序?

来自分类Dev

如何在不阻塞python中的计时器的情况下等待输入?

来自分类Dev

如何在不阻塞 UI 线程的情况下在 C++ 上发出 http 请求

来自分类Dev

如何在不阻塞水平行的情况下创建两列

来自分类Dev

如何在不阻塞程序的情况下设法等待我的套接字连接?

来自分类Dev

如何在不阻塞 Django 的情况下安排 celery 任务

Related 相关文章

  1. 1

    如何使方法返回启动的Task而不阻塞?

  2. 2

    如何实现阻塞调用而不浪费CPU时间?

  3. 3

    如何使pthread在后台工作而不阻塞外壳?

  4. 4

    如何生成一个表单而不阻塞主线程?

  5. 5

    在Perl / Tkx中运行外部命令而不阻塞GUI(Windows)

  6. 6

    使Javascript不阻塞

  7. 7

    当os.system(“ sleep ...”)时,Python如何阻塞信号?

  8. 8

    Perl非阻塞用户输入

  9. 9

    Play框架:如何在不阻塞的情况下修改响应正文?

  10. 10

    如何在不阻塞的情况下启动CompletableFuture,并在完成后执行某些操作?

  11. 11

    如何重复请求直到一个成功而不阻塞节点?

  12. 12

    如何在不阻塞UI的情况下反复调用方法?

  13. 13

    如何在不阻塞的情况下从执行器捕获RuntimeExceptions?

  14. 14

    通过按回车而不阻塞来退出while循环。如何改善这种方法?

  15. 15

    如何避免在不阻塞的情况下并发执行耗时的任务?

  16. 16

    如何在不阻塞主线程的情况下使用Qt-Dbus绑定

  17. 17

    在Linux上,select()如何确定何时可以不阻塞地写入TCP / IP连接?

  18. 18

    如何在python子进程中运行而不阻塞父进程?

  19. 19

    如何在不阻塞主线程的情况下同步调用异步函数?

  20. 20

    Oboe C ++线程-如何在不阻塞的情况下读写队列

  21. 21

    如何在JmsListener内调用反应式服务而不阻塞?

  22. 22

    如何在QGraphicsScene中移动1000个项目而不阻塞UI

  23. 23

    如何避免在不阻塞的情况下并发执行耗时的任务?

  24. 24

    如何在不阻塞终端的情况下从Linux终端运行程序?

  25. 25

    如何在不阻塞python中的计时器的情况下等待输入?

  26. 26

    如何在不阻塞 UI 线程的情况下在 C++ 上发出 http 请求

  27. 27

    如何在不阻塞水平行的情况下创建两列

  28. 28

    如何在不阻塞程序的情况下设法等待我的套接字连接?

  29. 29

    如何在不阻塞 Django 的情况下安排 celery 任务

热门标签

归档